エンティティフレームワークを使用して、このような「ユーザー」エンティティを定義したいと思います。各ユーザーには多くの友達がいて、友達のタイプは「ユーザー」です。このように定義できますか?
public class User
{
public int UserId {get;set;}
public string UserName {get;set;}
public virtual List<User> Friends {get;set;}
}
エンティティフレームワークを使用して、このような「ユーザー」エンティティを定義したいと思います。各ユーザーには多くの友達がいて、友達のタイプは「ユーザー」です。このように定義できますか?
public class User
{
public int UserId {get;set;}
public string UserName {get;set;}
public virtual List<User> Friends {get;set;}
}
はい、できます。問題は、エンティティを分離するかどうかです。そうでない場合、これは機能します。友人がプロパティを持っている場合は、ユーザーから継承するエンティティを持っている方がよいでしょう。
また、TPTの明確さについては、これを参照してください。コードファーストアプローチを介してEntity Framework 4.3で継承Table-Per-Typeを実装する方法は?
提供したコードでは、データベース内の自己参照テーブルになります。