首先让我先说我是工作单元设计模式的新手,请原谅我这是一个简单的问题。
底线是我有下面的代码。我知道列表有值,因为单元测试确认了它。但是,当我尝试使用SaveMethod()保存在我的数据库中时,我得到以下内容:
NHibernate.Exceptions.GenericADOException:无法插入: [ProjectName.BO.Method] [SQL:INSERT INTO [dbo]。[FinalTable]([ID],[FK],[SomeRandomField])VALUES(?,?,?); 选择SCOPE_IDENTITY()]
为什么SaveMethod接受“OfThisType”的对象,除非我错了,这就是我给它的。
public void SaveMethod(OfThisType x);
public List<OfThisType> RandomMethod()
{
var x = _db.Table1.Join(_db.Table2, i => i.Table1_ID, x => x.Table2_ID, (i, x) => new { i, x });
var listOfx = new List<OfThisType>();
foreach (var item in x)
{
var varOfThisType = new OfThisType();
varOfThisType.Table1_ID = item.i.Table1_ID;
varOfThisType.Table2_ID = item.x.Table2_ID;
varOfThisType.SomeRandomField = item.i.SomeRandomField;
listOfx.Add(varOfThisType);
}
using (UnitOfWork.Start())
{
var repository = new Repository();
foreach (var k in listOfx)
{
repository.SaveMethod(k);
}
}
return listOfx;
}