Entity framework 如何在POCO类中包含未映射的字段
我是EF的新手,只是在尝试。有没有人能告诉我,是否有可能做到以下几点。给定DB中的(产品)表,如下所示:Entity framework 如何在POCO类中包含未映射的字段,entity-framework,Entity Framework,我是EF的新手,只是在尝试。有没有人能告诉我,是否有可能做到以下几点。给定DB中的(产品)表,如下所示: Id Cost DescriptionFK -- ---- ------------- ? ? ? 我希望相应的POCO类(实体)显示为: public class Product { public int Id { get; set; } public decimal Cost { get; set; } public string Description
Id Cost DescriptionFK
-- ---- -------------
? ? ?
我希望相应的POCO类(实体)显示为:
public class Product
{
public int Id { get; set; }
public decimal Cost { get; set; }
public string Description { get; }
}
注意,类中的“Description”是一个只读字符串(没有setter),但它是表中的一个键。我正在调用一个存储过程来实现这一点(将键转换为其对应的字符串并返回上面的类),但是如果我现在执行以下操作:
// ...
product.Cost = 20;
myContext.SaveChanges();
我遇到一个异常,抱怨“Description”字符串没有映射。我删除了映射,因为它是只读的,并且不需要在类本身中包含“DescriptionFK”。有没有办法解决这个问题(仅限POCO)。非常感谢。如果您只是希望将Description属性作为计算字段,请将[NotMapping]添加到属性中以明确排除它,然后生成数据库:
public class Product
{
public int Id { get; set; }
public decimal Cost { get; set; }
[NotMapped]
public string Description { get; }
}
阿福,这是不可能的 “始终至少需要一个导航属性才能在数据库中创建外键约束。”