2013-11-24 5 views
0

У меня есть несколько библиотек классов, называемых RogData, которые имеют класс контекста DB и RogModleEntities, который хранит все мои классы сущностей. Мне нужно ссылаться из моей библиотеки RogData на библиотеку RogModleEntities, в которой я также добавил ссылку. У меня также есть инструкция using для RogModelEntities в приведенном ниже примере класса RogContext.Невозможно ссылаться на другую библиотеку классов из другой библиотеки

После выполнения каждого известного исправления в Stackoverflow я все еще получаю эту ошибку компиляции «Неверное имя типа« имя класса »не найдено (вам не хватает ссылки на директиву или сборку)».

Это класс DbContext из библиотеки RogData:

using System.Data.Entity; 
using RogModelEntities; 

namespace RogData 
{ 
    public class RogContext : DbContext 
    { 
     public DbSet<Person> User { get; set; } 
     public DbSet<CurrentAddress> UserAddress { get; set; } 
    } 
} 

enter image description here

И эти два класса сущностей из RogModleEntities:

namespace RogModelEntities.Models 
{ 
    public class Person 
    { 
     public int PersonID { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 

     public virtual CurrentAddress CurrentAddress { get; set; } 

     public string PersonFullName 
     { 
      get { return LastName + ", " + FirstName; } 
     } 
    } 
} 

namespace RogModelEntities.Models 
{ 
    public class CurrentAddress 
    { 
     [Key] 
     [ForeignKey("PersonAddress")] 
     public int PersonID { get; set; } 
     public string StreetAddress { get; set; } 
     public string City { get; set; } 
     public string State { get; set; } 
     public string ZipCode { get; set; } 

     public Person PersonAddress { get; set; } 
    } 
} 
+3

Это должно быть 'использование RogModelEntities.Models;' –

+0

@Khanh Wow ... Я никогда не думал об этом, но мне все еще интересно, почему, поскольку мои классы сущностей не находятся в папке «Модели»? – Shawn

+2

Важно то, что 'namespace RogModelEntities.Models', а не где находятся файлы. –

ответ

1

Как было предложено @gldraphael, я отправляю как ответ.

Заменить:

using RogModelEntities; 

С:

using RogModelEntities.Models 

Потому что ваши объекты находятся внутри RogModelEntities.Models. Важно, чтобы код объявлял пространство имен: namespace RogModelEntities.Models, а не там, где находятся файлы.

Смежные вопросы