实体框架:如何将列映射到数据库?
问题描述:
我的模型属性需要来自自定义类型。这个自定义类型有两个属性[ID,TextToShow]。我想要的只是保存自定义类型的ID在数据库中的值。 TextToShow的另一个值仅在从数据库中检索时使用。实体框架:如何将列映射到数据库?
我使用EF6,VS2015和C#如果你想实体框架忽略数据库中的一列连接到SQL Server
答
,用你的模型拥有的NotMapped
属性。
class Example {
public Guid Id { get; set; }
[NotMapped]
public string TextToShow { get; set; }
}
答
发现的解决方案: 1)我改ID字段的名称到别的东西让EF将其识别为关键。标记TextToShow
2)为[NotMapped]
其结果是:ID字段[其中已被重新命名]的只使用该值被存储在数据库中。
*
将会继续保持该会话开放的人谁面临同样的问题
-
*
答
如果我得到它的权利,你需要的是一个Complex Type它应该用EF Designer轻松设置。或者,如果您使用代码优先方法,您可以检查this blog post by Brady Holt。
一旦你添加复杂类型标记你想忽略的字段[NotMapped]属性
+0
是的,这是我正在寻找。我以[NotMapped]标记了我没有存储在数据库中的字段,并且它工作正常。 –
我不希望它忽略属性的整个值。正如我上面提到的,该属性是一个名为DualItem的自定义对象,它具有两个字段:ID和TextToShow。我想要的是保存ID的值,并忽略TextToShow的值,因为它将在从数据库中检索时手动分配。你有没有想过任何解决方案? 谢谢, –
我不明白你在问什么。你只更新一次'TextToShow',或者什么? – will
这是一个想法。我正在开发一个双语应用程序。让我们说我有一个GENDER列。在编程界面中我有两个选项[male = 0,female = 1],但用户看到的文本是根据他/她的语言偏好从另一个表中检索的。 所以我不会在数据库中存储TextToShow,因为它总是在变化。 将尝试你提到的方法,并会回复给你。 Thnaks –