Tag: entity framework 4

ASP.NET MVC2项目的DDD体系结构

我正在尝试使用域驱动开发(DDD)来实现我的新ASP.NET MVC2项目与entity framework4.在做了一些研究后,我想出了以下层约定,每个层都在自己的类项目中: MyCompany.Domain public class User { //Contains all the properties for the user entity } public interface IRepository where T : class { IQueryable GetQuery(); IQueryable GetAll(); IQueryable Find(Func condition); T Single(Func condition); T First(Func condition); T GetByID(int id); void Delete(T entity); void Add(T entity); void Attach(T entity); void SaveChanges(); } public interface […]

为什么EF 4中的Persistence Ignorant POCO需要“Fixup”?

entity framework4备受期待的function之一是能够以持久性无知方式使用POCO(普通旧CLR对象)(即,他们不“知道”它们与entity framework相对于其他机制持久化)。 我试图解决为什么必须执行关联修正并在我的“普通”业务对象中使用FixupCollection。 这个要求似乎意味着业务对象毕竟不能完全忽略持久性机制(事实上,“fixup”这个词听起来像需要修复/改变以适应所选择的持久性机制)。 具体来说,我指的是由ADO.NET POCO实体生成器生成的Association Fixup区域,例如: #region Association Fixup private void FixupImportFile(ImportFile previousValue) { if (previousValue != null && previousValue.Participants.Contains(this)) { previousValue.Participants.Remove(this); } if (ImportFile != null) { if (!ImportFile.Participants.Contains(this)) { ImportFile.Participants.Add(this); } if (ImportFileId != ImportFile.Id) { ImportFileId = ImportFile.Id; } } } #endregion 以及FixupCollection的使用。 其他常见的持久性无知ORM没有类似的限制。 这是由于EF的基本设计决定吗? 即使在EF的后期版本中,是否存在某种程度的非无知? 是否有一种聪明的方法可以隐藏POCO开发人员的持久性依赖性? 这在实践中如何实现,端到端? 例如,我理解最近才为ObservableCollection添加了支持(Silverlight和WPF需要它)。 其他软件层是否存在EF兼容POCO对象的设计要求?

十进制/货币字段的两位小数

我的数据库中有一个带有money field的表。 我创建了实体并为该货币字段创建了小数属性。 当该字段的值显示在我的MVC3视图上时,它在小数点后有四个零点0000,如下所示:5489.0000。 我想只显示两个00或小数位。 我该如何解决呢? 为什么它显示四位小数,即使我将属性声明为十进制。 请建议。

使用代码优先方法中的Id,从数据库上传,保存和检索图像

从过去10天开始,我尝试了许多方法/示例/教程,这些方法/示例/教程在网上提供以解决我的问题。 但是,对于所有这些情况,我失败了。 我想上传特定/多个产品的图像,将它们保存在数据库中,并通过调用它们的ID在主页中显示它们 。 任何人都可以为我提供一步一步的示例/教程/链接 。 请不要给出部分答案/建议 。 因为我已经厌倦了那些。

entity framework:检查实体的所有关系以供外键使用

我有一个实体,我们称之为CommonEntity ,它在许多其他实体中使用主键作为外键。 随着应用程序的开发,这些链接将继续增长。 我想知道是否可以安全地删除CommonEntity (即它没有被任何其他实体使用)。 我意识到我能做到 if(!ce.EntityA.Any() && !ce.EntityB.Any() … && !ce.EntityN.Any()) { //Delete } 但是我希望能够自动检查所有关系,因为我不喜欢每次添加新关系时都必须手动更改此代码。 也许EF4 +中有一些我不知道的东西? 我认为有可能使用事务范围来尝试删除对象并在它失败时将其回滚,但我不确定这种方法是否存在任何不良副作用。 有更好的方法吗? 编辑:看起来VS2012使用EF5即使项目是.Net 4,所以它创建了POCO模型,即使它是从数据库生成的。

在LINQ to Entities查询中包含()

我的ASP.NET MVC 3项目中有以下模型: public class Task { public int Id { get; set; } public DateTime CreatedOn { get; set; } public TaskStatus Status { get; set; } } public class TaskStatus { public int Id { get; set; } public string Description { get; set; } } 作为参考,这是我的DbContext类: public class TaskManagerSets : DbContext { […]

阻止EF性能的SNIReadSyncOverAsync和WaitForSingleObject?

我正在对使用EF(System.Data.Entities)从sql DB读取的WCF服务进行一些分析。 当我启动多个并行服务器的客户端时,CPU都会达到100%,性能通常是坦克,一切都陷入困境。 在使用并发分析器进行分析时,我发现85%的时间花在同步上,只有大约4%是实际的代码执行。 深入研究堆栈跟踪,大多数同步似乎来自System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync中对WaitForSingleObject的调用。 堆栈显示调用转到本机方法包装器,然后在kernel32.dll!_WaitForSingleObject结束。 有谁之前经历过这个吗? 对此有什么办法吗? 我并没有真正抛出荒谬的负载,只有大约20个并行客户端,并且它都是只读的,所以我很惊讶线程甚至会费心去同步。 我已经和它斗争了一个星期了,我无法解释它。 任何帮助,将不胜感激!

在Entity Framework中动态创建DbSet ?

在LINQ to SQL中,我可以使用DataContext.GetTable动态创建存储库。 除了在特定的DbContext上声明属性之外,是否有类似的方法在Entity Framework 4中执行此DbContext ? 例如: public MyDbContext: DbContext { public DbSet MySets {get; set;} } 我想知道如何动态创建/获取对MySets的引用,就像我在LINQ to SQL中一样: var mySet = MyDbContext.GetTable();

如何使用ASp.net MVC3插入数据库后显示“成功插入”等警报消息

如何使用MVC编写用于显示警报消息的代码:“成功注册”,用户数据存储在数据库中之后 我使用的是Asp.Net MVC3,C#,Entity Model。

entity framework4 – 在哪里放置“ApplyCurrentValues”逻辑?

我正在使用“ 存根技术 ”来更新我的POCO(用于分离的上下文,ASP.NET MVC)。 这是我目前在我的控制器中的代码(可以工作): [HttpPost] public ActionResult Edit(Review review) { Review originalReview = _userContentService.FindById(review.PostId) as Review; var ctx = _unitOfWork as MySqlServerObjectContext; ctx.ApplyCurrentValues(“MyEntities.Posts”, review); _unitOfWork.Commit(); // ..snip – MVC stuff.. } 如您所见,到处都有代码味道。 🙂 几点: 我基本上都使用dependency injection(基于接口) 我使用工作单元模式来抽象ObjectContext并在多个存储库之间提供持久性 目前我的IUnitOfWork接口只有一个方法: void Commit(); 控制器有IUserContentService和IUnitOfWork注入DI IUserContentService在存储库中调用Find ,它使用ObjectContext 。 以上代码是我不喜欢的两件事: 我不想将IUnitOfWork转换为MySqlServerObjectContext 。 我不希望Controller必须关心ApplyCurrentValues 我基本上希望我的代码看起来像这样: [HttpPost] public ActionResult Edit(Review review) […]