天道酬勤,学无止境

entity-framework

EntityCommandExecutionException Timeout Expired Only Sometimes

问题 我正在使用 Entity Framework 5 连接到 SQL Server 2008。我已将存储过程导入到我的项目中,没有任何问题。 存储过程在过去执行时完全没有问题,直到我从在 LINQ 中使用.GroupBy().First()切换到通过在存储过程中使用OUTER APPLY来获得独特的结果。 我从 LINQ 中的.GroupBy()切换到在 SQL Server 上使用OUTER APPLY ,因为当然 SQL 要快得多。 这是我的 SQL: @USERID VARCHAR(MAX) = NULL, @ITEMTYPE VARCHAR(MAX) = NULL, @ITEMSUBTYPE VARCHAR(MAX) = NULL, @ITEMGROUP VARCHAR(MAX) = NULL, @ITEMNO VARCHAR(MAX) = NULL SELECT distinct orderformdump.itemno, case when @userid = '' then NULL else CAST((SELECT top 1 [UNITPRICE] FROM [ICPRICP] WHERE [ITEMNO] = ICITEM.ITEMNO AND [PRICELIST] in (select priclist from ARCUS where IDCUST

2022-05-17 04:50:14    分类:技术分享    c#   sql-server   entity-framework   linq

Entity Framework Core ignoring .Include(..) without .ToList(..) indirectly

问题 正如 EF Core 文档中的“加载相关数据”中所述,我们可以使用.Include(..)从DbSet (或链接回 EF 上下文的通用IQueryable<T> )中急切地加载导航属性。 这意味着,给定以下模型: public class TestEntityA { public int Id { get; set; } public int TestEntityBId { get; set; } public TestEntityB TestEntityB { get; set; } public string BProperty { get { return TestEntityB.Property; } } } public class TestEntityB { public int Id { get; set; } public string Property { get; set; } } ..然后如下代码应该可以工作: context.TestEntityAs .Include(m => m.TestEntityB) .Any(m => m.BProperty == "Hello World"); /* * Note that the below DOES work by using the nav property directly * in the

2022-05-16 18:15:04    分类:技术分享    c#   entity-framework   asp.net-core   .net-core   entity-framework-core

ADO.NET vs EntityFramework

问题 有人可以用外行的术语解释 ADO.NET 和实体框架之间的区别吗? 我从谷歌搜索过,但无法理解其中的区别。 ADO.Net 表示使用sqlConnection(); , sqlCommand(); 等使用查询与数据库交互? 实体框架意味着使用db.Add(); , db.SaveChanges(); 在不使用查询的情况下与数据库交互的函数? 我对吗? 回答1 当您使用 EF db.Add(); 或db.SaveChanges或任何其他集成的 EF 方法,在此示例 EF 中,ORM(对象关系映射器)将使用 ADO.NET(因此 EF 将使用 ADO.NET 打开数据库连接,EF 将使用创建“SQL 查询” ADO.NET,...)。 当然,您可以自己完成这一切,使用 ADO.NET 方法,这有时可以提高查询的性能,但通常需要更多的代码编写。 但一般来说,当你使用 EF 时,你也会使用 ADO.NET,只是它在 EF 方法中实现。

2022-05-16 16:27:04    分类:技术分享    c#   .net   entity-framework

`Only primitive types or enumeration are supported in this context` error whilst seeding ASP.NET MVC using AddOrUpdate match on multiple fields

问题 我在 stackoverflow.com 上的第一个问题! 祝我好运解释:) 我正在尝试使用一些测试数据为开发数据库播种,需要在两个字段上进行匹配,并遇到了此处解决的问题 How to seed data with AddOrUpdate with a complex key in EF 4.3 我得到Only primitive types or enumeration types are supported in this context. lukyer 在评论中提到的错误。 但是,尽管按照他的建议在模型中的属性中添加了外键属性和必需属性,但我找不到明显的方法来清除错误。 任何关于如何成功播种数据库的想法将不胜感激。 该模型的重要部分如下: public class User { public string ID { get; set; } public string Email {get; set; } } public class Institution { public Guid ID { get; set;} public string Name {get; set; } } public class UserInstitutionAssociation { public Guid ID { get; set; } public virtual User User

2022-05-16 03:40:14    分类:技术分享    c#   entity-framework   linq   asp.net-mvc-4   entity-framework-migrations

Suppress SQL Queries logging in Entity Framework core

问题 我有一个使用实体框架核心的控制台 .net 核心应用程序。 该应用程序使用日志框架写入文件和控制台: serviceProvider = new ServiceCollection() .AddLogging() .AddDbContext<DataStoreContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))) .BuildServiceProvider(); //configure console logging serviceProvider.GetService<ILoggerFactory>() .AddConsole(LogLevel.Debug) .AddSerilog(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(), "logs/vcibot-{Date}.txt")) .WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(),

2022-05-16 02:06:04    分类:技术分享    entity-framework   .net-core

How to build this complex Expression Func?

问题 我目前正在一个有这个数据库对象的EF网站上工作: public partial class Association { public Association() { this.Users = new HashSet<User>(); } public Guid Id { get; set; } public Guid ItemId { get; set; } [ForeignKey("ItemId")] public virtual Item Item { get; set; } [InverseProperty("Association")] public virtual ICollection<User> Users { get; set; } } 一个项目类: public partial class Item { public Item() { this.Associations = new HashSet<Association>(); } public Guid Id { get; set; } public ItemTypeEnum Type { get; set; } [InverseProperty("Item")] public virtual ICollection<Association> Associations { get; set; } }

2022-05-16 01:33:07    分类:技术分享    c#   entity-framework   lambda   expression

Can I develop an Asp.net core MVC application using Entity Framework 6 (not Entity Framework core)?

问题 回答1 根据 ASP.NET Core 的文档,它说: 要使用 Entity Framework 6,您的项目必须针对完整的 .NET Framework 进行编译,因为 Entity Framework 6 不支持 .NET Core。 如果您需要跨平台功能,则需要升级到 Entity Framework Core。 回答2

2022-05-16 00:16:11    分类:技术分享    asp.net-mvc   entity-framework   asp.net-core   asp.net-core-mvc   .net-core

Unexplained SQL errors in production environment - possibly network related

问题 我正在做一些相当密集的数据库工作,并最终将很多很多记录插入到数据库中。 为了尽量减少上下文膨胀,我一次插入 100 个,处理上下文,然后重新创建上下文。 我收到一些我不明白的奇怪错误。 这些错误只发生在我们的生产服务器上,但在开发服务器上一切正常。 如果有人能阐明他们认为可能存在的问题,我将不胜感激。 System.Data.Entity.Core.EntityCommandExecutionException:执行命令定义时出错。 有关详细信息,请参阅内部异常。 System.Data.SqlClient.SqlException:从服务器接收结果时发生传输级错误。 (提供者:TCP 提供者,错误:0 - 信号量超时期限已过。) System.ComponentModel.Win32Exception:信号量超时期限已过 System.Data.SqlClient.SqlException (0x80131904):从服务器接收结果时发生传输级错误。 (提供者:TCP 提供者,错误:0 - 指定的网络名称不再可用。) System.ComponentModel.Win32Exception (0x80004005): 指定的网络名称不再可用 System.Data.Entity.Infrastructure.CommitFailedException

2022-05-15 23:57:07    分类:技术分享    c#   asp.net   sql-server   entity-framework

Printing out the results of my linq query

问题 我正在使用 asp.net 核心实体框架。 我正在使用 linq 组合三个表,User、Products 和 User_Had_Products。 我的查询似乎工作正常。 我遇到的问题是打印出我的查询结果。 我可以打印出整个对象,但不能使用点符号打印出各个字段。 例如对象的输出是 { name = user, product = desk, quantity = 1, date = 1/13/17 3:30:32 PM } { name = user, product = desk, quantity = 1, date = 1/13/17 3:52:40 PM } { name = user, product = desk, quantity = 1, date = 1/13/17 3:52:40 PM } { name = user, product = desk, quantity = 1, date = 1/14/17 9:14:22 AM } { name = user, product = desk, quantity = 1, date = 1/14/17 9:14:27 AM } 我想要的输出 user desk 1 1/13/17 3:30:32 PM user desk 1 1/13/17 3:30:32 PM user desk 1 1/13/17 3

2022-05-15 20:45:03    分类:技术分享    c#   entity-framework   linq

How to solve entity framework core System.ArgumentNullException

问题 从以下堆栈跟踪中,我无法通过错误消息判断出什么问题。 我使用--verbose标志运行迁移命令,希望它能帮助查明问题,但 zilch。 dotnet ef migrations add migwl3 --verbose 我找不到名为key的参数 System.ArgumentNullException: Value cannot be null. Parameter name: key at Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T value, String parameterName) at Microsoft.EntityFrameworkCore.SqlServerMetadataExtensions.SqlServer(IKey key) at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer. <Add>d__41.MoveNext() at System.Linq.Enumerable.<CastIterator>d__35`1.MoveNext() at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at

2022-05-15 20:03:12    分类:技术分享    entity-framework   .net-core   entity-framework-migrations