sma*_*man 17 c# linq datacontext linq-to-sql
究竟是什么在LINQ到SQL方法Table<T>.Attach()和Table<T>.AttachAll()什么是他们正确使用的例子/局面?
另外,请查看以下相关问题:如何从DataContext的跟踪机制中分离LINQ-to-SQL数据对象?
Jar*_*dek 18
它在将数据序列化/反序列化到其他层的多层应用程序中非常有用.
Attach()告诉DataContext该实体不是新的(用于插入),而是一个要在DB中更新的更新实体.
您有一个存在实体的DataContext.插入新实体,更新现有实体.现在您需要将一些实体发送到另一个层,DataContext然后分离所述实体并将其发送出去.
在另一层,实体被修改并发送回您的数据层.现在,具有您实体的前DataContext可能不再存在(例如,如果它是无状态的)或者不知道您的反序列化实体那么您做什么?您创建一个新的DataContext或使用现有的DataContext并使用该Attach()方法 - 这样DataContext就知道该实体是要更新的,不应该插入到数据库中.
同样适用AttachAll()于多个实体.