EF4.1コードファーストを停止する方法エンティティPKの頂点に達したインデックスを作成する
質問
次のSimple Entityクラスで、EF4.1 Code-FirstはPKのクラスターインデックスを作成します UserId
データベースをintializingするときの列。
public class User
{
[Key]
public int UserId { get; set; }
public int AppId { get; set; }
public string UserName { get; set; }
}
パフォーマンスのために、私の設計目標は生成されたものを維持することです Users
テーブルに従って物理的にクラスター化されています AppId
PKにはない。
初期イザーのクラスでは、自動生成されたPKクラスターインデックスを手動でドロップし、必要なクラスターインデックスを作成しようとしましたが、自動発電された名前を予測する手がかりはありません。 PK__Users__25518C17
インデックス用!
私はコードファーストワールドに慣れていませんが、デザインの目標に回避策があるかどうかは本当にわかりません。
前もって感謝します
解決
自動生成インデックスの名前を予測する必要はありません。インデックスの名前を選択するだけです。 SQL Serverの場合、次のようなクエリを使用できます。
SELECT I.Name
FROM sys.indexes AS I
INNER JOIN sys.tables AS T ON
I.object_Id = T.object_Id
WHERE I.is_primary_key = 1
AND T.Name = 'Users'
カスタムイニシャルイザーに名前を取得したら、古いインデックスを変更して新しいインデックスを作成できます。
所属していません StackOverflow