我使用代碼優先使用實體框架6.0。實體框架PK名稱
我需要連接到由Microsoft Access ODBC創建的數據庫表。
當我嘗試連接到一個表時,收到關於PK名稱的錯誤。
實體框架創建一個名爲PK_dbo_TABLENAME的PK,它會在Microsoft Access中產生問題。如果我重命名它,沒有問題。
我如何強制實體框架鍵的不同名稱?
我在數據註釋語法中搜索,但沒有結果。
謝謝。
我使用代碼優先使用實體框架6.0。實體框架PK名稱
我需要連接到由Microsoft Access ODBC創建的數據庫表。
當我嘗試連接到一個表時,收到關於PK名稱的錯誤。
實體框架創建一個名爲PK_dbo_TABLENAME的PK,它會在Microsoft Access中產生問題。如果我重命名它,沒有問題。
我如何強制實體框架鍵的不同名稱?
我在數據註釋語法中搜索,但沒有結果。
謝謝。
最後,從SQL Management Studio中我手動重命名PK。
如果你是說,你的列名是不相同的名稱屬性,您正在使用(即TableID
VS Id
),您可以使用[Column()]
屬性覆蓋名稱:
[Column("GeoLocationDetailId")]
public Guid Id { get; set; }
如果您「再參照模式不承認你的主鍵,您可以在該屬性添加[Key]
屬性,它會撿起來:
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Id { get; set; }
如果你使用的型號的配置,你可以使用HasKey
方法,你將與[Key]
屬性相同的方式:
modelBuilder.Entity<GeoLocationEntity>()
.HasKey(e => e.Id)
問題是Sql Server下的鍵名。如果我打開一個表,鍵列是正確的,但是如果我打開Keys文件夾,costraints名稱是PK_dbo_tableName。 –
你說的MS Access - 你是什麼意思的Sql Server? –
實體框架代碼首先在SQL Server中創建表。我嘗試使用Microsoft Access ODBC連接 –
檢查[KeyAttribute](https://msdn.microsoft.com/en-us/library/jj591583(v = vs.113).aspx#Key) – Mats391