实体框架代码首先自定义字段,我不想映射到数据库

Posted

技术标签:

【中文标题】实体框架代码首先自定义字段,我不想映射到数据库【英文标题】:Entity Framework code first custom fieldd that I don't want to map to DB 【发布时间】:2012-08-21 17:43:41 【问题描述】:

我正在使用 EF5。在我的域类中,我有一个不想映射到表的字段。但我必须将其公开,以便其他类可以访问它:

public class Person

   // these are mapped fields
   public string FirstName get;set;
   public string LastName  get;set;

   // this is intended only for in-memory storage and not saved to DB
   public string LoginFromIP get;set;

当我尝试保存新记录时,上面的代码将生成“invalid column LoginFromIP”错误消息,因为我的 Person 表中没有 LoginFromIP。

当我删除设置器时,它可以工作。我猜 EF 的自动映射需要 getter 和 setter。如何将我的 LoginFromIP 属性仅保留到域类而不在 DB 表中创建字段?

谢谢!

【问题讨论】:

【参考方案1】:
[NotMapped]
public string LoginFromIP get;set;

【讨论】:

以上是关于实体框架代码首先自定义字段,我不想映射到数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个自定义实体映射到实体框架中的某些数据库表?

Java自定义注解注解实现实体类与数据库表字段的映射

Java自定义注解注解实现实体类与数据库表字段的映射

从实体框架映射到自定义域模型类?

更新映射到视图的实体框架实体

使用实体框架 Fluent Api 映射 System.Uri