玩弄流利NHibernate的Getting Started项目。我试着自定义这个例子,原因有几个,其中包括消除了json序列化的循环引用。NHibernate单向关联
我所做的是将Store
和StoreMap
类的参考文献还原为Employee
和Product
类。现在看起来是这样的:
店/ StoreMap
public class Store
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
}
public StoreMap()
{
Id(x => x.Id);
Map(x => x.Name);
}
公司雇员/ EmployeeMap的
public class Employee
{
public virtual int Id { get; private set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual Store Store { get; set; }
}
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Id(x => x.Id);
Map(x => x.FirstName);
Map(x => x.LastName);
References(x => x.Store).Cascade.All();
}
}
产品/ ProductMap
public class Product
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual double Price { get; set; }
public virtual IList<Store> StoresStockedIn { get; private set; }
public Product()
{
StoresStockedIn = new List<Store>();
}
public virtual void StockAt(Store store)
{
StoresStockedIn.Add(store);
}
}
public class ProductMap : ClassMap<Product>
{
public ProductMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Price);
HasManyToMany(x => x.StoresStockedIn)
.Cascade.All()
.Table("StoreProduct");
}
}
我已将“Cascade”操作移至Product
和Employee
而不是Store
。从我做的测试中,HasMany和HasManyToMany协会似乎都能正常工作。
我的问题是,如果这是正确的做法。是否会导致我没有预料到的事情。