ナビゲーションプロパティの命名/生成に関して、EntityFrameworkがどのようなルールに従うのか知りたいです。私は意味をなさないように思われるいくつかのシナリオを観察したので、誰かがこれらがどのように機能するかを正確に知っているかどうか疑問に思いました。
シナリオ1:
public class Post
{
public int Id { get; set; }
public User Author { get; set; }
}
生成します
すなわち。デフォルトでは、ナビゲーションプロパティは[PropertyName]_Idという名前のFKを生成します
シナリオ2:
ただし、FKIdを手動で指定したときにEFが[PropertyName]_Idの形式のプロパティを生成する場合、同じルールに従うことは理にかなっています。
public class Post
{
public int Id { get; set; }
public int? Author_Id { get; set; }
public User Author { get; set; }
}
生成します
ご覧のとおり、これはnavプロパティとして自動的に登録されません。
シナリオ3:
シナリオ2で機能しない場合、別の命名規則で機能するのはなぜですか?
public class Post
{
public int Id { get; set; }
public int? AuthorId { get; set; }
public User Author { get; set; }
}
生成します
ナビゲーションプロパティの検出と生成に関するルールは何ですか?