- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些 POCO 继承自实现 INotifyPropertyChanged 的通用业务基类。我也在 DAL 使用 EF5。如果我要像下面这样获取单个竞争对手对象:
public ICompetitorCard Fetch(long id)
{
return this.Fetch<ContactCardContext, ICompetitorCard>(
() => { return ContactCardContext.GetInstance(this); },
ctx =>
{
var query = from competitor in ctx.Competitors
where competitor.Id == id
select competitor;
return query.SingleOrDefault();
}, "ICompetitorCard Fetch(long id) failed");
}
我取回了由 EF5 完美填充的 CompetitorCard 对象。问题是我不想在从 DAL 加载时触发通知。所以通常我可能会设置某种字段来跟踪对象是否已初始化。这很容易“正常”实现,但由于在这种情况下 EF 正在执行加载,我想知道我需要挂接什么事件/虚拟方法才能设置
IsInitialised = true;
以便此后触发属性通知。我想我可以做类似的事情:
ICompetitorCard card = query.SingleOrDefault();
if (card!=null){card.IsInitialised = true;}
return card;
但这似乎过于冗长,破坏了封装并且对集合等来说是一种痛苦。那么对于那些处理自己的 INotifyPropertyChanged 实现的人来说,他们如何使用 EF5 来管理它?
最佳答案
您通过订阅对象内的事件来“激活”INotifyPropertyChanged
,并且在实例化对象之前无法完成此操作。
在您的对象中,除非有订阅者,否则您不会引发更改事件。
参见 MSDN了解更多信息。
更新:
您可以订阅 ObjectContext
的 ObjectMaterialized
事件以将您的对象标记为已加载。像这样:
((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized +=
this.ObjectContext_OnObjectMaterialized;
实现你的功能
ObjectContext_OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e).
EventArgs
将为您提供刚刚实现的对象。
关于c# - 在 Entity Framework 5 返回的 POCO 中激活 INotifyPropertyChanged 的推荐做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566469/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!