草庐IT

c# - ASP.NET MVC 4,EF5,模型中的唯一属性 - 最佳实践?

ASP.NETMVC4、EF5、代码优先、SQLServer2012Express在模型中实现唯一值的最佳做法是什么?我有一个places类,它有一个“url”属性,每个地方都应该是唯一的。publicclassPlace{[ScaffoldColumn(false)]publicvirtualintPlaceID{get;set;}[DisplayName("DateAdded")]publicvirtualDateTimeDateAdded{get;set;}[Required(ErrorMessage="PlaceNameisrequired")][StringLength(10

c# - 为什么 EF 6 教程使用异步调用?

有关如何将EF6与MVC5结合使用的最新EF教程似乎倾向于使用对数据库的异步调用,例如:Departmentdepartment=awaitdb.Departments.FindAsync(id);这是新标准/最佳实践吗?我不确定这种使用ASP.NETMVC的开发方式有什么好处。谁能评论一下这个模式,这是微软正在推广的新标准吗? 最佳答案 为了决定是异步还是同步,比较yield和成本:异步:几乎从不用异步耗尽线程池(情况必须是极端的)几乎任意级别的并发(并发请求和操作)每个线程节省1MB内存借助SynchronizationCont

c# - 如何在不传入连接名称的情况下在 Entities ObjectContext 上设置 EF Trace

我正在编写一个可重用的基础存储库类,开发人员将在其中传递一个代表ObjectContext的泛型。基础存储库将使用Activator.CreateInstance创建它的实例.调试时我想使用nuget包CommunityEFProviderWrappers.EFTracingProvider.所以我设置对象上下文的代码如下所示:publicvoidRenewDataContext(){#ifDEBUG//getthedefaultcontainernamevarcontainerName=Activator.CreateInstance().DefaultContainerName;/

c# - DDD 与 EF Code First - 如何将它们放在一起?

学习DDD开发这几天,开始喜欢上了。我(认为我)了解DDD的原则,您的主要关注点是业务对象,您有聚合、聚合根、仅用于聚合根的存储库等等。我正在尝试创建一个将DDD开发与代码优先方法相结合的简单项目。我的问题是:(我正在使用asp.netMVC)DDD业务对象与CodeFirst对象不同吗?即使它们可能相同,例如我可以有一个包含所有规则和方法的Product业务对象,并且我可以先有一个Product代码(POCO)对象,它只包含我需要保存在数据库中的属性。如果问题1的答案是“真”,那么我如何通知ProductPOCO对象业务对象Product的属性已更改,并且我必须更新它吗?我正在使用“

c# - 处理 EF 中循环引用的干净方法?

假设我有这个表结构:Client-----------ClientIdintnotnull(identity)CurrentDemographicIdintnull(FKtoClientDemographic)OtherClientFieldsvarchar(100)nullClientDemographic------------------ClientDemographicIdintnotnull(identity)ClientIdintnotnull(FKtoClient)OtherClientDemographicFieldsvarchar(100)null想法是Client(

c# - EF 中 IDatabaseInitializer 的正确用法是什么?

我有一个自定义的DatabaseInitialiser,它在下面//////ImplementstheIDatabaseInitializertoprovideacustomdatabaseinitialisationforthecontext.//////TContextistheDbContextpublicclassParikshaDataBaseInitializer:IDatabaseInitializerwhereTContext:DbContext{//////ThemethodtoInitialisethedatabase.///Takescareofthedataba

c# - 从 EF 选择返回元组

如何使用EF4在选择时检索元组?varproductCount=(fromproductincontext.productsselectnewTuple(product,products.Orders.Count));或者varproductCount=(fromproductincontext.productsselectTuple.Create(product,products.Orders.Count));EntityFramework说第一种情况不能使用非空构造函数,第二种情况不能识别Tuple.Create方法。 最佳答案

c# - EF 代码首先是 : How to delete a row from an entity's Collection while following DDD?

场景是这样的:DDD声明您使用存储库获取聚合根,然后使用它来添加/删除它拥有的任何集合。添加很简单,您只需在要添加到的Collection上调用.Add(Itemitem)。保存时会向数据库中添加一个新行。但是,删除是不同的-调用.Remove(Itemitem)不会从数据库中删除项目,它只是删除外键。因此,是的,从技术上讲,它不再是收藏的一部分,但它仍在数据库中。仔细阅读,唯一的解决方案是使用数据上下文将其删除。但是根据DDD,域对象不应该知道数据上下文,因此必须在域外进行删除。解决这个问题的正确方法是什么?或者让数据库中充满孤儿是可以接受的吗(也许运行一个例程来清除它们)?

EF生成的SQL无效列名称错误

在下面,您可以看到SQL应该通过使用[classID1]而不是[class1_classid]加入,因为后者不存在。我很确定我可以使用FluentAPI来纠正此问题,但不确定哪种方法。生成的SQLSELECT...FROM[dbo].[School]AS[Extent1]LEFTOUTERJOIN[dbo].[Student]AS[Extent2]ON[Extent1].[SchoolId]=[Extent2].[SchoolId]LEFTOUTERJOIN[dbo].[Class]AS[Extent3]ON[Extent2].[Class1_ClassId]=[Extent3].[Class

将EF对象从控制器传递到部分视图

我是MVC的新手,我想通过模型中准备的实体对象从控制器到部分视图。在模型中:publicclassHomeSlidesViewModel{publicHomeSlidesViewModel(){}publicListhomeSlides{get;set;}}在控制器中:usingwrrc.ViewModels;publicActionResultGetHomeSlider(HomeSlidesViewModelmodel){vargetHomeSliders=fromghsinTools.DataModel.HomeSlidesselectghs;model.homeSlides=getHom