草庐IT

entity_type_id

全部标签

c# - 在 C# 中实现安全的鸭子类型(duck typing)

看了之后如何Go处理接口(interface)并喜欢它,我开始考虑如何在C#中实现类似的duck-typing,如下所示:varmallard=newMallard();//doesn'timplementIDuckbuthastherightmethodsIDuckduck=DuckTyper.Adapt(mallard);DuckTyper.Adapt方法将使用System.Reflection.Emit动态构建适配器。也许有人已经写过这样的东西。我想这与模拟框架已经做的并没有太大不同。但是,如果Mallard实际上没有正确的IDuck方法,这将在运行时抛出异常。为了在编译时尽早发

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

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

c# - 事务(进程 ID)在锁定资源上与另一个进程发生死锁,并已被选为死锁牺牲品。重新运行交易

我有一个C#应用程序,它使用存储过程将数据插入到SQLServer(2008)表中。我正在使用多线程来执行此操作。正在从线程内部调用存储过程。现在我的存储过程在插入数据时使用“tablock”。执行此代码时出现以下错误:“事务(进程ID)在与另一个进程的锁资源上发生死锁,并已被选为死锁牺牲品。重新运行该事务。”谁能帮我解决这个问题? 最佳答案 当两个SqlServer进程以不同的顺序访问相同的资源时,就会发生这种情况。因此他们最终都在等待另一个进程,这是一个死锁。有很多方法可以防止它,包括:避免使用不必要的锁。查看查询所需的事务隔离

c# - Linq to Entities 中的动态 where 子句 (OR)

在帖子中here我学习了如何使用Linq的延迟执行来构建动态查询。但查询实际上是使用WHERE条件的AND串联。如何使用OR逻辑实现相同的查询?由于Flags枚举,查询应该搜索Username、WindowsUsername或两者:publicUserGetUser(IdentifierTypetype,stringidentifier){using(varcontext=contextFactory.Invoke()){varquery=fromuincontext.Usersselectu;if(type.HasFlag(IdentifierType.Username))query

c# - 将 Entity Framework 升级到 6.1 - 索引已存在错误

我刚刚将一个使用代码优先模型的项目从EntityFramework6.0.2升级到6.1.0。升级后,context.Database.CompatibleWithModel(true)返回false,因此EF认为数据库不再兼容模型。我没有更改任何其他内容,只是升级了EF。我运行Add-Migration看看会发生什么,EF创建了一个大迁移,似乎在每个表的每个外键属性上创建了一个索引:publicoverridevoidUp(){CreateIndex("dbo.ActivityStreams","UserId");CreateIndex("dbo.Users","OfficeId")

c# - 将 Entity Framework 模型从 Web 项目移动到类库中

我正在使用EntityFramework,最近开始意识到在同一解决方案的另一个项目中使用您的EF模型的好处,这样我就可以从中构建多个UI。我将它移到了一个新的类库项目中,并更新了对Web项目中实体的所有引用,以使用该项目生成的新dll。一切都很顺利,除了一个小问题。当我将EF移至新项目时,它仍然以某种方式从Web项目中的web.config读取其连接字符串(不要问我如何,因为我不知道)。我在EF设计器中使用了“从数据库更新模型”,但它没有找到连接字符串(正如我在将其移至新项目后预期的那样)所以我使用向导生成了一个新的连接字符串,它做得很好。新的连接字符串现在驻留在类库项目的App.co

c# - 嵌入式 RavenDB 出现 "Could not find transactional storage type"错误

我能够根据在以下位置找到的代码成功运行RavenDB的简单测试:http://ravendb.net/tutorials/hello-world接下来我尝试以嵌入式方式运行它,但我不断收到以下错误:Message:Couldnotfindtransactionalstoragetype:Raven.Storage.Esent.TransactionalStorage,Raven.Storage.EsentStackTrace:atRaven.Database.Config.InMemoryRavenConfiguration.CreateTransactionalStorage(Act

c# - 将我自己的方法与 LINQ to Entities 结合使用

我有一个使用LINQ的项目,我想在其中使用我自己的方法。此NoWhiteSpaces方法应返回不含空格的上部字符串。publicstaticclassLittleExtensions{publicstaticstringNoWhiteSpaces(thisStrings){returnRegex.Replace(s,@"\s",string.Empty).ToUpper();}}当我想将此方法与LINQ一起使用时,如下所示:staticvoidGetHaendler(){using(varriaService=newgkmRia()){varhladany="someone";varh

c# - 是否可以在 Entity Framework Core 中创建基于字符串的 Include 替代方案?

在API上我需要动态包含,但EFCore不支持基于字符串的包含。因此,我创建了一个映射器,它将字符串映射到添加到列表中的lambda表达式,如下所示:List>expressions=newList>();考虑以下特定类型:publicclassEFContext{publicDbSetP1s{get;set;}publicDbSetP2s{get;set;}publicDbSetP3s{get;set;}}publicclassP1{publicP2P2{get;set;}publicP3P3{get;set;}}publicclassP2{publicP3P3{get;set;}}

c# - 如何将参数传递给 Entity Framework 中的 DbSet.SqlQuery 方法

我正在尝试在EntityFramework中执行一个带有一些参数的RAWSQL语句。我使用的方法来自DbSet.SqlQuery我对如何构造params对象数组感到困惑:paramsobject[]parameters这是我的代码块:publicActionResultAPILocation(stringlat,stringlng){stringSQL="select*from(selectDistance=((ACOS(SIN(@lat*PI()/180)*SIN(lat*PI()/180)+COS(@lat*PI()/180)*COS(lat*PI()/180)*COS((@lng