3

私はエンティティを持っています:

public class Plugin
{
    public virtual int Id { get; set; }
    public virtual int Version { get; set; }

    public virtual Plugin ParentPlugin { get; set; }
    public virtual IEnumerable<Setting> Settings { get; set; }
}
public class Setting
{
    public virtual int Id { get; set; }
    public virtual Plugin Plugin { get; set; }
    public virtual int Version { get; set; }
}

問題は、ParentPlugin を追加したときに、DB の Setting テーブルに ParentPlugin_Id が追加されたことです。なぜこれを行ったのかわかりませんが、データベースに Plugin_Id と ParentPlugin_Id の両方ではなく、Plugin_Id のみを設定したいと思います。

報奨金を受け取るために 2 つのことを知りたいです
。 1. 設定から ParentPlugin_Id 参照を削除するにはどうすればよいですか?
2.そもそもなぜこれを行ったのですか(ドキュメントへのリンクは問題ありません。これを説明するものが見つかりませんでした)?

Fluent Nhibernate の自動マッピングを使用していますが、ほとんどすべてがデフォルトです。

4

1 に答える 1

3

正確な FK 名を指定することで、余分な ParentPlugin_Id を削除できました。FK を削除する代わりに FK を追加しなければならないのは少し直感的ですが...

 .Override<Plugin>(m => m.HasMany(c => c.Settings).KeyColumn("Plugin_Id"))

これは、外部キー規則 ( https://github.com/jagregory/fluent-nhibernate/wiki/Auto-mapping )をより深く理解することによって理解されました。

于 2013-09-22T16:33:34.863 に答える