Tag: entity framework 6

如何在Entity Framework和Mysql中使用规范函数

我想使用MySql数据库将Timespan添加到EntityFramework中的DateTime。 我尝试过使用DbFunctions.AddMinutes(someminutes)和EntityFunctions.AddMinutes(someminutes)但是当我执行时,我得到了类似的exception functionprojectName.AddMinutes不存在 我用谷歌搜索但无法找到如何执行规范function。 虽然有一个function列表,但我不知道他们属于哪个类https://msdn.microsoft.com/en-us/library/bb738563.aspx 我在用 MySql.Data.Entities 6.8.3.0 EntityFramework 6.0.0 MySql.Data 6.8.4 MySql.Web 6.8.4 MySql(数据库)5.6.17 我的Linq查询如下 IQueryable orders = _dbContext.Orders .OrderByDescending(x => x.ID) .Select(x => new OrderViewModel { ID = x.ID, AddedOn = DbFunctions.AddMinutes(x.AddedOn, diffMinutes).Value, Customer = (x.IsGuestCheckOut == true ? x.CustomerEmail : x.Customer.FirstName + ” ” + x.Customer.LastName), Phone = x.Phone, TotalAmount = x.TotalAmount, […]

具有不变名称“MySql.Data.MySqlClient”的ADO.NET提供程序未在计算机或应用程序配置文件中注册

我有一个使用entity framework6到mysql服务器的asp.net解决方案。 现在我必须在新机器上研究该解决方案, 但我有一些问题: 1)在构建解决方案时,我得到错误: “具有不变名称’MySql.Data.MySqlClient’的ADO.NET提供程序未在机器或应用程序配置文件中注册”。 App.config中: 2)打开model.edmx文件时我收到消息: “实体模式设计器无法显示您请求的文件”。 我在机器上安装了: 1)mysql连接器/ net 6.9.9 2)mysql for visual studio 1.2.6 3)mysql连接器odbc 5.3.6。 我能做什么?

如何在entity framework中查找具有指定日期范围列表的日期?

我有一个IEnumerable我创建的类包含日期范围。 那个class看起来像这样: public class Range where T: struct { public T Start { get; set; } public T End { get; set; } } 我想查找我的集合中的所有记录,其中日期列落在指定日期范围的任何一个范围内。 这是我的尝试: deals = deals.Where( deal => criteria.DateRanges.Any( dt => deal.CloseDate >= dt.Start && deal.CloseDate < dt.End.Value.AddDays(1))); 这会抛出我假设的错误,因为EF不知道如何将criteria.DateRanges.Any()转换为SQL。 那你怎么写这个来查找与任何日期范围相匹配的日期?

如何在Visual Studio 2015中管理EF 6迁移?

我使用Visual Studio 2013最新更新使用EntityFramework -Version 6.1.2启动了一个新的MVC项目。 我进行了几次迁移并更新了数据库。 在此之后,我在另一台计算机上检出了该项目,并使用Visual Studio 2015 CTP 6打开。 如果我进入包管理器控制台并尝试运行任何迁移命令,则无法识别它们: add-migrations:术语“add-migrations”不被识别为cmdlet,函数,脚本文件或可操作程序的名称。 检查名称的拼写,或者如果包含路径,请validation路径是否正确,然后重试。 如何在Visual Studio 2015中使用Entity Framework 6管理迁移?

entity framework包括filter子集合

我在LINQ查询中为包含的项添加一些过滤条件有些困难。 我的查询是这样的 var item = _Context.Order.Include(“Inner”) .Include(“Inner.first”) .Include(“Inner.second”) .Where(x => ( !(x.IsDeleted) && (x.IsActive) && (x.itemid == id))).FirstOrDefault(); 在上面的代码中,“Inner”是另一个项目列表。 现在我需要过滤内部项目。 我只需要内部项目,过滤条件为inner.isDeleted = true。 查询应该返回一个类, public class Order { public string Name { get; set; } public List Inner{ get; set; } public bool IsDeleted { get; set; } } 和InnerDetails类一样 public class InnerDetails { public […]

entity framework6和SQL Server序列

我正在使用EF6与数据库第一个项目。 我们要求使用序列,这是SQL Server 2012中引入的一个特性(我相信)。 在表上,标识列具有使用以下设置的默认值: (NEXT VALUE FOR [ExhibitIdentity]) 之所以使用它,因为我们有两个表来存储不同部门的展览信息,但我们需要在两个表中都具有唯一性,因为它在许多其他共享公用表中用作参考。 我的问题是在entity framework中使用它,我用谷歌搜索但找不到与EF6是否支持它们有关的信息。 我已经尝试在EFdesigner设置为Identity但是在保存时会抱怨零行受到影响,因为它使用scope_identity来查看插入是否成功但是当我们使用序列时,它返回为null。 将其设置为computed会抛出一个错误,说我应该将其设置为identity并将其设置为none会导致它将0作为id值插入并失败。 我是否需要调用函数/过程以获取下一个序列,然后在保存记录之前将其分配给id值? 任何帮助深表感谢。

没有App.config,EF6,SQLite将无法运行

我正在尝试制作一个插件,它将使用EF6.1和SQLite用于我无法更改App.config的应用程序,因此需要在代码中设置所有配置和连接字符串。 我发现这个答案在使用Entity Framework 6和SQLite时看起来很有前途 所以现在我有一个这样的配置类: public class CollectionDbConfiguration : DbConfiguration { public CollectionDbConfiguration() { SetProviderServices(“System.Data.SQLite”(DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices))); SetProviderFactory(“System.Data.SQLite.EF6”, SQLiteProviderFactory.Instance); SetProviderFactory(“System.Data.SQLite”, SQLiteFactory.Instance); } } 我已经确认在第一次创建上下文之前会遇到这种情况并且所有这些都返回值。 我的上下文看起来像这样 public class MyContext : DbContext { public MyContext(string connectionString) : base(connectionString) { } public DbSet MyEntities { get; set; } } 我有一些代码称之为: var context = new MyContext(“Data Source = mytest.db; Version = […]

‘System.Data.Entity.Internal.AppConfig’的类型初始值设定项在子网站上引发了一个例外

我有2个网站,一个是另一个的子目录,但是是一个Application ex:/ root&/ root / Services 他们都使用Entity Framework 6.x,但子网站正在抛出System.Data.Entity.Internal.AppConfig的类型初始化程序’引发了一个exception,因为它看起来因为嵌套而看到同一个EF数据库提供程序的许多条目web.config中 有没有办法清除提供程序集合,以便我不会收到此错误? 我试过放入哪个没效果。 如果我注释掉提供者部分它是有效的 但我不想这样做,因为不是每个环境都会有嵌套网站。 并且NuGet倾向于将其重新插入。我可以通过编程方式进行调整吗? 这是完整的exception和堆栈跟踪 System.TypeInitializationException was unhandled by user code HResult=-2146233036 Message=**The type initializer for ‘System.Data.Entity.Internal.AppConfig’ threw an exception.** Source=EntityFramework TypeName=System.Data.Entity.Internal.AppConfig StackTrace: at System.Data.Entity.Internal.AppConfig.get_DefaultInstance() at System.Data.Entity.Internal.LazyInternalConnection..ctor(String nameOrConnectionString) at System.Data.Entity.DbContext..ctor(String nameOrConnectionString) at co.Repository.Data.coContext..ctor() in coModel.Context.Generated.cs:line 23 at co.Repository.RepositoryBase`1.SingleOrDefault(Expression`1 predicate) in co.Repository\RepositoryBase.cs:line 13 at UserFactory.GetOneByUserName(String siteCode, […]

如何在代码中添加entity framework6提供程序?

我在C#应用程序中使用Entity Framework 6,它完美地运行。 创建模型时,将生成app.config并包含所有必需的配置。 现在我不喜欢app.config中的东西,所以我使用连接字符串构建器。 我成功地删除了app.config文件中的所有内容,除此之外: 如果我删除它,它不起作用。 那么如何将该配置转换为c#代码? 我该怎么办? 我查看了基于代码的配置( http://msdn.microsoft.com/en-us/data/jj680699 )但是,它没有帮助。 我创建连接字符串的部分类看起来像这样: public partial class LogEntities { public LogEntities(string serverName) : base(GetConnectionString(serverName)) { } public static string GetConnectionString(string serverName) { // Specify the provider name, server and database. const string databaseName = “_LOG”; // Initialize the connection string builder for the underlying provider. SqlConnectionStringBuilder […]

entity framework中的并发exception

在Entity Framework(CF,C#)中调用SaveChanges / SaveChangesAsync时,如果发生更改冲突(例如,自上次读取之后值已更新),那么我应该捕获这两个exception中的DbUpdateConcurrencyException或OptimisticConcurrencyException ? 它们之间有什么区别?