1

CUSTOMER、COMPANY、および企業と顧客の間の関係を保持するリレーショナル テーブル CUSTOMER_COMPANY。

私はメールのリストを持っています

メールリストを一覧表示

特定の会社に属し、そのメールアドレス (フィールド) がこの emailList にある顧客を検索したい。QueryOver を使用するにはどうすればよいですか?

public class CustomerMap : ClassMap<Customer>
{
    public CustomerMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Email);
        //... Other Fields

        HasMany(x => x.CompanyCustomers);
    }
}


public class CompanyMap : ClassMap<Company>
{
    public CompanyMap()
    {
        Id(x => x.Id);
        Map(x => x.Title);
            //... Other Fields

        HasMany(x => x.CompanyCustomers);
    }
}


public class CompanyCustomerMap : ClassMap<CompanyCustomer>
{
    public CompanyCustomerMap()
    {
        Id(x => x.Id);
        Map(x => x.IsActive);
        Map(x => x.CustomerType);
        ...

        References(x => x.Customer);
        References(x => x.Company);
    }
}

メーリングリストに存在する会社に属する顧客を取得したい...

4

1 に答える 1

1

次のように試すことができます:

Company company = null;
session.QueryOver<Customer>
  .JoinAlias(customer => customer.Company, () => company)
  .WhereRestrictionOn(() => company.Email).IsIn(new[] { "email_1", "email_2", ... })
  .TransformUsing(Transformers.DistinctRootEntity)
  .List();
于 2012-04-13T09:02:47.130 に答える