2017-05-16 7 views
0

私はコードでエンティティフレームワーク6.0を最初に使用します。Entity Framework PKの名前

Microsoft Access ODBCによって作成されたデータベーステーブルに接続する必要があります。

テーブルに接続しようとすると、PK名に関するエラーが発生します。

Entity Frameworkは、Microsoft Accessで問題を引き起こすPK_dbo_TABLENAMEという名前のPKを作成します。名前を変更すると、問題はありません。

エンティティフレームワークのキーに異なる名前を付ける方法を教えてください。

私はデータアノテーション構文で検索しますが、結果はありません。

ありがとうございました。

+0

[KeyAttribute](https://msdn.microsoft.com/en-us/library/jj591583(v = v113).aspx#Key)を確認してください。 – Mats391

答えて

0

最後に、私は手動でリネームPK。

1

あなたが名前を上書きする[Column()]属性を使用することができ、あなたの列名は、あなたが(すなわちTableIDId対)を使用しているプロパティと同じ名前でないことを言っている場合:

[Column("GeoLocationDetailId")] 
public Guid Id { get; set; } 

あなたの場合あなたの主キーを認識しないスキーマを参照する「再、あなたはその性質上[Key]属性を追加することができ、それはそれをピックアップします:あなたはモデルのコンフィギュレーションを使用している場合

[Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public Guid Id { get; set; } 

は、あなたがを使用することができますあなたは[Key]属性の場合と同じように方法:SQLの管理Studioから

 modelBuilder.Entity<GeoLocationEntity>() 
      .HasKey(e => e.Id) 
+0

問題はSql Serverのキー名です。テーブルを開くと、キーの列は正しいですが、Keysフォルダを開くと、コストの名前はPK_dbo_tableNameになります。 –

+0

あなたはMS Access - Sql Serverとはどういう意味ですか? –

+0

エンティティフレームワークのコードは、最初にSQL Serverでテーブルを作成します。私はMicrosoft Access ODBCと接続しようとしています –

関連する問題