实体框架:如何将列映射到数据库?

问题描述:

我的模型属性需要来自自定义类型。这个自定义类型有两个属性[ID,TextToShow]。我想要的只是保存自定义类型的ID在数据库中的值。 TextToShow的另一个值仅在从数据库中检索时使用。实体框架:如何将列映射到数据库?

我使用EF6,VS2015和C#如果你想实体框架忽略数据库中的一列连接到SQL Server

,用你的模型拥有的NotMapped属性。

class Example { 
    public Guid Id { get; set; } 
    [NotMapped] 
    public string TextToShow { get; set; } 
} 
+0

我不希望它忽略属性的整个值。正如我上面提到的,该属性是一个名为DualItem的自定义对象,它具有两个字段:ID和TextToShow。我想要的是保存ID的值,并忽略TextToShow的值,因为它将在从数据库中检索时手动分配。你有没有想过任何解决方案? 谢谢, –

+0

我不明白你在问什么。你只更新一次'TextToShow',或者什么? – will

+0

这是一个想法。我正在开发一个双语应用程序。让我们说我有一个GENDER列。在编程界面中我有两个选项[male = 0,female = 1],但用户看到的文本是根据他/她的语言偏好从另一个表中检索的。 所以我不会在数据库中存储TextToShow,因为它总是在变化。 将尝试你提到的方法,并会回复给你。 Thnaks –

发现的解决方案: 1)我改ID字段的名称到别的东西让EF将其识别为关键。标记TextToShow

2)为[NotMapped]

其结果是:ID字段[其中已被重新命名]的只使用该值被存储在数据库中。

*

将会继续保持该会话开放的人谁面临同样的问题

    *

如果我得到它的权利,你需要的是一个Complex Type它应该用EF Designer轻松设置。或者,如果您使用代码优先方法,您可以检查this blog post by Brady Holt

一旦你添加复杂类型标记你想忽略的字段[NotMapped]属性

+0

是的,这是我正在寻找。我以[NotMapped]标记了我没有存储在数据库中的字段,并且它工作正常。 –