0

次のように、マッピングに流暢なnHibernateを使用しています。

public class ContentTagMap: ClassMap<Employee>
{
    public EmployeeMap()
    {
        Id(t => t.Id);
        Map(t => t.Name);
        HasManyToMany(t => t.Company);
    }
}

public class CompanyMap: ClassMap<Company>
{
    public HelpMap()
    {
        Id(h => h.Id);
        Map(h => h.CompanyName).Length(6000);
        Map(h => h.address).Length(6000);
        HasManyToMany(h => h.Employee);
    }
}

これらのマッピングにより、Employee Table、Company Table、およびEmployeeToCompanyTableが生成されます。

従業員テーブル

Id    Name
1     John
2     MAX

会社表

Id    CompanyName   address
1      HTC           ABC
2      HTC2          India

EmployeeToCompanyテーブル

Employee_Id     Company_Id
1               1
2               1

ID 1の従業員を削除するにはどうすればよいですか?

4

1 に答える 1

1

私があなたの質問を誤解していない限り、あなたは尋ねるべきです:

NHibernate を使用してテーブルの内容を削除するにはどうすればよいですか?

Fluent NHibernate は、エンティティのマッピングを支援するツールにすぎません。 NHibernateは、データの作成、読み取り、更新、および削除に使用するものです。いずれにしても:

9.5. 永続オブジェクトの削除

ISession.Delete() は、データベースからオブジェクトの状態を削除します。もちろん、アプリケーションはまだそれへの参照を保持している可能性があります。したがって、Delete() は、永続インスタンスを一時的にするものと考えるのが最善です。

NHibernateのドキュメントから

HasManyToManyマッピングで、多対多の関係 ( ) にカスケード スタイルを定義することもできます。

Cascade.SaveUpdateリレーションシップの片側でエンティティを削除するたびに多対多で使用すると、そのエンティティとすべてのリレーションシップが削除されます。関連付けを削除すると (たとえば、Employeeからを削除した場合Company)、関係 ( ) のみが削除されEmployeeToCompanyます。これは、多対多の関係の場合に通常機能することがわかったものです。

Fluent NHibernate での多対多の関係のマッピングと使用の詳細については、この記事を参照してください。

多対多の関係を nhibernate と同期させる方法は?

于 2012-04-18T12:01:43.990 に答える