0
public class Entity<TId>
{
public virtual TId {get;set;}
}
public class TenantId
{
public virtual Guid Id {get;set;}
}
public class Tenant
: Entity<TenantId>
{
public string Name {get;set;}
}
public class AccountId
{
public virtual Guid Id {get;set;}
}
public class Account
: Entity<AccountId>
{
public Account(TenantId tenantId,AccountId accountId)
{
TenantId = tenantId;
Id= accountId;
}
public TenantId TenantId {get;set;}
public string AccountName {get;set;}
}
public class TenantMap
{
public TenantMap()
{
Id(x=>x.Id.Id).GeneratedBy.GuidComb();
Map(x => x.Name).Not.Nullable();
}
}
public class AccountMap
{
public AccountMap()
{
Id(x=>x.Id.Id).GeneratedBy.GuidComb();
Map(x=>x.TenantId.Id).Column("TenantId").Not.Nullable();
Map(x => x.AccountName).Not.Nullable();
}
}
我需要映射AccountMap.TenantId作爲外鍵(租戶)。 Db必須知道TenantId是Tenant的主鍵。當我像下面一樣向Account添加新記錄時,nhibernate或db必須驗證租戶表中是否存在TenantId值。如何將Nhibernate上的引用對象映射爲外鍵?
Session.Save(新帳戶(新TenantId( 「GUID-的-存在租戶」),新ACCOUNTID( 「GUID」))
我知道參考是解決方案BU我需要TenantId而不是引用對象 – oguzh4n