【问题标题】:Change Default Name of Relations更改关系的默认名称
【发布时间】:2014-08-17 20:46:48
【问题描述】:

我有两个结构如下的表:

*Table User*

id       int      identity
username varchar
role     varchar


*Table Ticket*

id       int      identity
admin_id int
user_id  int

admin_iduser_id 是来自 User 表的外键。 我在 Mssql 图中为关系设置了一个关系名称,但是当我从这个数据库创建我的模型时,关系是:UserUser1。 当我手动更改它们时,一切正常,但是在刷新模型或重新创建Ticket 表后,UserUser1 又回来了。 如何在 EF 模型中为我的关系设置最终名称?即使我刷新或删除整个模型,我也希望 EF 模型关系名称与图关系名称相同。

【问题讨论】:

  • 你能告诉我你是如何从数据库创建模型的吗?您是创建“LinQ to SQL”还是“Entity Framewok”?
  • @Lali entity-framework 标签分配给这个问题,所以我正在使用它。
  • 我尝试创建相同的场景,发现在设计器模型中,没有明确的关系映射。然而在 Ticket 模型中,有两个 User 类型的属性,分别名为 'user' 和 'user1'。我认为您在谈论这些属性。
  • @Lali 是的,我在说他们,我不知道为什么这些名字和数据库中的关系名字不一样!每当我更新模型时都会导致问题。

标签: sql-server entity-framework foreign-key-relationship ef-model-first


【解决方案1】:

没有办法强制 Entity Framework 从关系名称中获取属性名称,而是将表名称作为属性名称(多个属性使用整数后缀)。

现在的问题是,在您的场景中,当您 update model from database 时,您重命名的属性会更改为其原始名称。

我们可以阻止entity framework 不重置我们自己重命名的属性名称。方法是,

  1. 打开模型文件 (.edmx)
  2. 在模型浏览器中转到Association 文件夹
  3. 右键单击关联(要重命名)并转到 属性
  4. 检查Property托盘,从底部开始搜索End2 Navigation Property
  5. 随意重命名。

完成了。

现在,即使您从数据库更新模型,它也不会刷新。

【讨论】:

  • 虽然问题没有解决,但这是唯一可以让更新过程更轻松的解决方案,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
相关资源
最近更新 更多