草庐IT

framework-part

全部标签

c# - Entity Framework 4.1 支持上下文的模型在创建数据库后立即发生了变化

我正在开发一个项目,该项目使用EntityFramework4.1将我们的各种对象持久保存到数据库(代码优先)。我在VisualStudio中使用本地SQLExpress数据库进行测试,我们的Jenkins服务器将提交的代码部署到测试服务器。发生这种情况时,我临时更改本地连接字符串以指向测试数据库服务器并运行单元测试以重新创建测试数据库,以便它与我们最新的实体等相匹配。我最近注意到我们的测试服务器出现了这个错误:支持“EntityFrameworkUnitOfWork”上下文的模型自数据库创建以来已更改。手动删除/更新数据库,或使用IDatabaseInitializer实例调用Dat

c# - Entity Framework 6 Code First - 必需的枚举数据类型不起作用

我正在使用必需的枚举字段生成数据库表。但是,在提供表格时,可以省略提供枚举字段:EF不会抛出任何错误消息,但会提供0值的字段。你能帮我理解发生了什么吗?谢谢publicenumTestEnum{test1=1,test2=2,test3=3,test4=4}publicclassTestEnumClass{[Key]publicintid{get;set;}[Required(ErrorMessage="Required"),Display(Name="TestEnum")]publicTestEnumtest{get;set;}} 最佳答案

c# - : public static DateTime ToDateTime(DateTime value) in the . NET Framework 的目的是什么?

我正在维护一个现有的项目,我发现了这行代码:DatetimesomeDate=....;varanotherDateTime=Convert.ToDateTime(someDate);起初,我希望通过隐式调用ToString方法将someDate转换为字符串,但我错了。当我在方法上按F12时,我在System.Convert类中看到该方法的定义,如下所示://Summary:ReturnsthespecifiedSystem.DateTimeobject;noactualconversionisperformed.//Parameters://value:Adateandtimeval

c# - Entity Framework 4.1 的 SQL "not in"语法

对于“不在”SQL等价物的EntityFramework语法,我有一个简单的问题。本质上,我想将以下SQL语法转换为EntityFramework语法:selectIDfromdbo.ListwhereIDnotin(listofIDs)这是我用来查找单个记录的方法:publicstaticListGetLists(intid){using(dbInstancedb=newdbInstance()){returndb.Lists.Where(m=>m.ID==id);}}这是我想为此使用的伪方法:publicstaticListGetLists(ListlistIDs){using(d

c# - Entity Framework 按日期选择每个组中的一个

我有一个这样的表(表名:Posts):+----+--------------------------+-------+------------+|id|content|type|date|+----+--------------------------+-------+------------+|0|Sometext|TypeA|2013-04-01||1|Someoldertext|TypeA|2012-03-01||2|Someevenoldertexttext|TypeA|2011-01-01||3|Adog|TypeB|2013-04-01||4|Andolderdog|Ty

c# - Entity Framework 、DBContext 和 using() + 异步?

有一个关于EntityFramework的问题困扰了我很长时间。去年,我使用EF为客户编写了一个大型应用程序。在开发过程中,一切都很好。我们在8月发布了系统。但几周后,我开始在生产服务器上看到奇怪的内存泄漏。我的ASP.NETMVC4进程在运行几天后占用了机器的所有资源(8GB)。这不好。我在网上四处搜索,发现您应该将所有EF查询和操作包围在using()block中,以便可以处理上下文。在一天之内,我重构了我所有的代码以使用using(),这解决了我的问题,从那时起,该过程就稳定地占用了内存。然而,我一开始没有围绕我的查询的原因是,我从VisualStudio中包含的Microsof

c# - 如何在 Asp.Net 5 (MVC 6) 中使用 Entity Framework 6.x

我正在使用VS2015CTP-6测试新的Asp.Net5。由于EntityFramework7中缺少功能,我现在更愿意使用EF6。我试过删除EF7,然后在PM中应用EF6,如下所示:Uninstall-PackageEntityFrameworkInstall-PackageEntityFramework-version6.1.3没有返回错误,并且project.json文件似乎已相应更新。虽然,没有可用的DbContext。这有可能吗?如果是,我应该如何从这里开始?我是否需要web.config才能兼容EF6? 最佳答案 是的,这

c# - Entity Framework 4 和查询结果的缓存

假设我有一个或两个表包含永远不会或很少更改的数据,尝试缓存这些数据有什么意义吗?或者当我第一次加载它们时,EF上下文会为我缓存这些数据吗?我正在考虑从这些表中加载所有数据,并使用静态列表或其他东西将这些数据保存在内存中,并在我需要同一上下文中的数据时查询内存中的数据而不是表。我所说的那些表通常包含几百行数据。 最佳答案 EF上下文将缓存“每个实例”。也就是说,DbContext的每个实例都有自己独立的对象缓存。您可以将生成的对象列表存储在静态列表中,并在不返回数据库的情况下随意查询。为了安全起见,请确保在执行查询后放弃DbConte

c# - Entity Framework Code First - 更改表名

我想首先更改使用EntityFramework代码生成的其中一个表的名称。我已经创建了数据库,但现在我想更改名称。我已将项目中对"Metadatas"表的所有引用更新为"Metadata"。但是在数据库中生成的表仍然是“元数据”。我已经删除并重新创建了数据库,但这似乎也不起作用。使用TableAttribute也不行。我该怎么办?谢谢。[Table("Metadata")]publicclassMetadata{[Required,Key]publicintMetadataId{get;set;}[Required,ScaffoldColumn(false)]publicintDocu

c# - 在 Entity Framework 中动态添加 where 子句

我有这条sql语句SELECTuserIDfromusersWHERE(name='name1'ANDusername='username1')OR(name='name2'ANDusername='username2')OR(name='name3'ANDusername='username3')OR..........(name='nameN'ANDusername='usernameN')如何使用LINQ通过EntityFramework实现此语句? 最佳答案 您可以使用一个名为PredicateBuilder的美丽事物.像这