【发布时间】:2011-08-31 18:57:36
【问题描述】:
与正常情况不同,我的代码确实有效,但我想知道这是否是唯一(或最佳方法)。
基本想法是我有一个现有的应用程序,它的手工数据层正在移植到实体框架。作为最小化代码更改的折衷方案,我正在使用现有方法,这些方法往往采用更加不连贯的方法。比如我有很多这样的东西:
UpdateNote(int noteId, string note)
我似乎有一种无需重新获取即可用于此类更新的方法:
var context = new MyEntities();
context.Configuration.ValidateOnSaveEnabled = false;
var note = new Model.Note{ Id = noteId, Note = ""};
context.Notes.Attach(note);
note.Note = "Some Note";
context.SaveChanges();
它有点难看(虽然足够简洁),所以我想知道是否有更好的方法与 EF 一起使用?除了失去内置验证之外,这种方法有什么缺点吗?
这是一个将在我的应用程序中使用的模式。
【问题讨论】:
-
我有一个更好的扩展方法我会在一点点。它是我从网上获取的 AttachAsModified 的一种变体,在这些场景中效果很好,而无需知道道具名称。
-
回来看看这个 - 你将失去你的 DataAnnotations 验证(如果这就是你的意思)但是如果你定义了任何实体框架验证(例如在代码中首先使用IsRequired() 方法)
标签: asp.net entity-framework entity-framework-4.1