域 class 对数据层不可见(应用程序上下文 class )
Domain classes not visible to Data layer (Application context class )
为了让数据层知道我的域 classes,我在两个 class 库之间添加了一个引用,HMSContext
(即数据层)和 Hms.Entities
(即域-classes)。
以下是来自 HMS.Entities
的代码:
namespace HMS.Entities
{
class Accomodation
{
public int ID { get; set; }
public int AccomodationPackageID { get; set; }
public AccomodationPackage AccomodationPackage { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
来自 HMSContext.cs
的代码:
using System.Data.Entity;
namespace HMS.Data
{
public class HMSContext : DbContext
{
public DbSet<Accomodation> Accomodations { get; set; }
}
}
我在这两个 .dll 之间添加了引用。附上显示此内容的快照 here。出于某种原因,HRMContext.cs
没有读取 HMS.Entities
尽管添加了引用。我错过了什么吗?有人可以阐明这一点吗?提前致谢。
您使用的 using System.Data.Entity;
与您的项目结构无关。所以也加上HMS.Entities
。
任何时候遇到此类问题,请尝试使用完整命名空间并检查它是否正确。
请注意,您还具有 重构 能力。您可以使用 ( Ctrl + . ) 和 Visual Studio 帮助您使用正确的命名空间。
你的代码必须是这样的:
using System.Data.Entity;
using HMS.Entities;
namespace HMS.Data
{
public class HMSContext : DbContext
{
public DbSet<Accomodation> Accomodations { get; set; }
}
}
对于实体 class 你应该使用 public
关键字:
namespace HMS.Entities
{
public class Accomodation
{
public int ID { get; set; }
public int AccomodationPackageID { get; set; }
public AccomodationPackage AccomodationPackage { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
为了让数据层知道我的域 classes,我在两个 class 库之间添加了一个引用,HMSContext
(即数据层)和 Hms.Entities
(即域-classes)。
以下是来自 HMS.Entities
的代码:
namespace HMS.Entities
{
class Accomodation
{
public int ID { get; set; }
public int AccomodationPackageID { get; set; }
public AccomodationPackage AccomodationPackage { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
来自 HMSContext.cs
的代码:
using System.Data.Entity;
namespace HMS.Data
{
public class HMSContext : DbContext
{
public DbSet<Accomodation> Accomodations { get; set; }
}
}
我在这两个 .dll 之间添加了引用。附上显示此内容的快照 here。出于某种原因,HRMContext.cs
没有读取 HMS.Entities
尽管添加了引用。我错过了什么吗?有人可以阐明这一点吗?提前致谢。
您使用的 using System.Data.Entity;
与您的项目结构无关。所以也加上HMS.Entities
。
任何时候遇到此类问题,请尝试使用完整命名空间并检查它是否正确。
请注意,您还具有 重构 能力。您可以使用 ( Ctrl + . ) 和 Visual Studio 帮助您使用正确的命名空间。
你的代码必须是这样的:
using System.Data.Entity;
using HMS.Entities;
namespace HMS.Data
{
public class HMSContext : DbContext
{
public DbSet<Accomodation> Accomodations { get; set; }
}
}
对于实体 class 你应该使用 public
关键字:
namespace HMS.Entities
{
public class Accomodation
{
public int ID { get; set; }
public int AccomodationPackageID { get; set; }
public AccomodationPackage AccomodationPackage { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}