Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架拒绝在新列上保存值_Entity Framework - Fatal编程技术网

Entity framework 实体框架拒绝在新列上保存值

Entity framework 实体框架拒绝在新列上保存值,entity-framework,Entity Framework,我刚刚更改了数据库,向表中添加了一个新列,并将其设置为外键。我们首先使用EF4数据库,所以我从数据库更新了模型,将我的新字段添加到DTO,在我尝试将数据保存到它之前,一切看起来都很好 新列名为DiaryEventId,由于它是FK,因此对象上还有一个名为DiaryEvent的虚拟属性。下面是代码的样子: public void SaveDocument(Guid CaseId, string diaryText, string ActivityType) { Gu

我刚刚更改了数据库,向表中添加了一个新列,并将其设置为外键。我们首先使用EF4数据库,所以我从数据库更新了模型,将我的新字段添加到DTO,在我尝试将数据保存到它之前,一切看起来都很好

新列名为DiaryEventId,由于它是FK,因此对象上还有一个名为DiaryEvent的虚拟属性。下面是代码的样子:

    public void SaveDocument(Guid CaseId, string diaryText, string ActivityType)
    {
        Guid eventTypeId = RepositoryHelper.GetDiaryEventFromCache("Document Uploaded", _commonQueryContext);
        //this wanders off and created a diary event object, adds it to 
        //the context and returns its ID
        Guid diaryId = RepositoryHelper.AuditEvent(CaseId, diaryText, commonUpdateContext);

        Entities.DocumentMetadata docData = new Entities.DocumentMetadata()
        {
            Id = Guid.NewGuid();,
            ActivityType = activityType,
            DiaryEventId = diaryId
        };

        _commonUpdateContext.DocumentMetadatas.Add(docData);
        _commonUpdateContext.SaveChanges();
    }
这可以很好地编译和运行,当您逐步执行它时,它似乎按照预期的方式运行-在对象上生成并设置diaryId。但在数据库中,它总是显示为null

我尝试在添加日记事件后调用SaveChanges(以确保密钥有连接的对象),并尝试将实际的DiaryEvent对象添加到虚拟属性,而不仅仅是ID,两者都具有相同的效果

当我观察SQL Profiler中的情况时,我可以看到INSERT语句完全忽略了我的新列—它根本没有列在INSERT列中


真的不知道发生了什么。有什么想法吗?

在将对象添加到上下文后尝试修改它,就像测试一样

    _commonUpdateContext.DocumentMetadatas.Add(docData);

    Entities.DocumentMetadata docData = new Entities.DocumentMetadata()
    {
        Id = Guid.NewGuid();,
        ActivityType = activityType,
        DiaryEventId = diaryId
    };

    _commonUpdateContext.SaveChanges();
或者这可能是一个打字错误

Entities.DocumentMetadata docData = new Entities.DocumentMetadata()
    {
        Id = Guid.NewGuid();,  <-------------typo?
Entities.DocumentMetadata docData=新实体.DocumentMetadata()
{

Id=Guid.NewGuid();,感谢您的帮助-按照建议进行修改没有效果。呵呵,不是这样的。这是我将实际代码修改成更简洁的代码来演示问题的原因。