繁体   English   中英

EF代码优先的NotMapped属性

[英]EF Code first NotMapped Attribute

在下面的示例中,为什么需要[NotMapped]属性:

public virtual ICollection<Blog> Blogs { get; set; }

[NotMapped]
    public List<Blog> NewBlogs{
        get{
            return Blogs.Where(x=>x.Date > DateTime.Now).ToList();
        }
    }

如果没有[NotMapped]属性,则会出现异常:

无效的列名Blog_ID

数据库中的列名称为BlogID。

编辑

我希望没有设置器的属性永远不会直接映射到数据库,并且首先会被代码自动忽略。

使用[NotMapped]属性,基本上可以将属性标记为非实体/属性

因此EF不会尝试从数据库映射/获取该属性

该示例实际上说,NewBlogs不是像Blogs这样的实体。 所以停止尝试从数据库获取NewBlogs

它被标记为NotMapped,因为它返回按需从DB获取的数据,而不是表示要存储的单独实体集。

即使该属性没有设置器,您也可以将其保留在数据库中。 即:您有一个模型产品,该模型在构造函数中设置了您不想更改的价格(例如,没有设置器),但是您希望该值在数据库中保持不变

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM