假设我有表Customer和两个对表City的引用。实际上(默认情况下)我将为Customer的每条记录获取City1和City2外部引用。正如您所看到的那样,建立名称EF只考虑外来表名,并忽略源字段。
如果EF可以同时使用 - 目标表名和源字段名,就像字段custBorn - >那样会好得多。 custBornCity,以及字段custLives - > custLivesCity。
问题
有没有办法自动 - 比编号引用更有意义(City1,City2 ......)?
我有有意义的字段名称(在表格中),有意义的外键。但EF忽略了这些信息。它仅关注目标表名称(仅在使用一次时才有意义。)
我通过举一些例子来重新解释这个问题。我的外键(在DB中)被命名为FK_Born_City和FK_Lives_City。所以我想通过EF自动生成这样的名字:
FK_Born_CitycityBorn,FK_Lives_CitycityLives(FK +字段名称的连接,丑陋)或......
我希望你能得到这张照片。
答案 0 :(得分:0)
[...]忽略源字段
除非属性是静态的。只要属性存在于Customer
类型的对象实例上,就不能认为源部分被忽略了,而
答案 1 :(得分:0)
在Sql server 2008中,它在创建FK约束名时自动使用表名和字段名。
Sql server在创建默认约束时忽略字段值。
您可以使用以下示例脚本为FK约束创建有意义的名称。
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_TableName_ColumnName]') AND parent_object_id = OBJECT_ID(N'[dbo].[TableName]'))
ALTER TABLE [dbo].[TableName] WITH CHECK ADD CONSTRAINT [FK_TableName_ColumnName] FOREIGN KEY([PK_Field])
REFERENCES [dbo].[TableName2] ([FK_Field])
GO