【发布时间】:2010-11-14 11:21:39
【问题描述】:
这行得通:
var i = (from x in db.Test
where x.Id == 1
select x).First();
db.Test.DeleteOnSubmit(i);
db.SubmitChanges();
我得到一个转换错误(int/string):
var i = db.Test.Single(x => x.Id == 1);
db.Test.DeleteOnSubmit(i);
db.SubmitChanges();
我还能够在同一张桌子上成功使用 Single 进行更新。有什么线索吗?
更新
更多错误信息如下:
这里有更多:
[InvalidCastException:无法将“System.Int32”类型的对象转换为“System.String”类型。]
System.Data.Linq.SingleKeyManager2.TryCreateKeyFromValues(Object[] values, V& v) +134
System.Data.Linq.IdentityCache2.Find(Object[] keyValues) +57
System.Data.Linq.StandardIdentityManager.Find(MetaType type, Object[] keyValues) +51
System.Data.Linq.CommonDataServices.GetCachedObject(MetaType 类型,Object[] keyValues)+113
System.Data.Linq.ChangeProcessor.GetOtherItem(元关联关联,对象实例)+235
System.Data.Linq.ChangeProcessor.BuildEdgeMaps() +510
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)+137
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +453
System.Data.Linq.DataContext.SubmitChanges() +38
【问题讨论】:
-
你提到你得到一个演员错误,但它来自哪里?它是否为您提供了更多信息?
标签: sql-server database linq linq-to-sql ado.net