在使用LINQ to SQL时,我在自定义类中创建了一个静态DataContext,即
public class OPIS
{
public static DataContext DataContext = new DataContext();
....
}
现在每当我需要通过LINQ查询(包括插入和删除)结果时,我都会使用这个静态DataContext对象。在我无法在其中一个EntitySet中获取最近插入的对象之前,我从来没有想过问题,例如。
我有一个Profile
和一个BasicInfo
EntityType,彼此之间有一对一的关系。
//Inserting a new BasicInfo Object, have created association with Profile object before
OPIS.DataContext.BasicInfos.InsertOnSubmit(basicInfoObject);
现在在另一页上
Profile profile = //get new profile from linq, comming fine
BasicInfo bi = profile.BasicInfo //returning null, it shouldn't
bi
应该返回关联的BasicInfo对象与配置文件,但事实并非如此。为什么呢?
答案 0 :(得分:2)
您是否曾在SubmitChanges()
上致电DataContext
?如果没有,那么您所做的就是注册BasicInfo
进行插入,但绝不插入。
OPIS.DataContext.BasicInfos.InsertOnSubmit(basicInfoObject); //registers object for insertion
OPIS.DataContext.SubmitChanges(); // performs insert