Entity framework 如何在POCO类中包含未映射的字段

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

我是EF的新手,只是在尝试。有没有人能告诉我,是否有可能做到以下几点。给定DB中的(产品)表,如下所示:

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; }
}

阿福,这是不可能的

“始终至少需要一个导航属性才能在数据库中创建外键约束。”