草庐IT

entity-framework

全部标签

c# - 部署使用 Entity Framework Core 的 WPF 应用程序

我想构建一个使用EntityFramework核心的WPF应用程序,以便我可以处理SQLite数据库。然后我执行以下操作,例如:使用VisualStudio2017(15.5.2)创建WPF应用程序。打开nuget包管理器并安装Microsoft.EntityFrameworkCore.Sqlite和Microsoft.EntityFrameworkCore.Tools。将一个按钮拖放到我的MainWindow.xaml上,并向Click事件添加一个事件处理程序,使xaml看起来像:将以下代码拖放到代码隐藏文件MainWindow.xaml.csnamespaceWPFEFCoreDe

c# - 在 Entity Framework Core 中使用两列的一对多关系

在我的项目中,我有一个表Translation,它可以包含任何模型的翻译。为此,该表有两个字段:Model和ModelId。Model属性包含一个指示模型类型的整数,ModelId包含此模型的ID。因此,例如:Product表的模型类型ID1。要获取ID为317的产品的所有翻译,我使用Model=1ANDModelId=317搜索翻译。现在我想在EntityFrameworkCore中创建这种关系。我所有的模型都继承自BaseModel类,该类有一个属性ModelType保存模型类型的id。此字段未映射,因此在数据库中不可用。我曾尝试使用FluentAPI创建关系,但它不允许我指定更多

c# - 使用具有导航属性的接口(interface)

我正在尝试使用EntityFramework4、POCO和Code-Only设置一个项目。是否可以在EntityFramework中将导航属性的类型作为接口(interface)?我有一个“任务”类。一个任务可以分配给一个用户或一个组,每个用户或组都由一个单独的类表示并存储在单独的表中。这些类看起来像这样:publicclassUser:IAssignable{publicstringName{get;set;}publicintID{get;set;}publicstringEmail{get;set;}publicstringPassword{get;set;}}publiccla

c# - 什么是 EF 重写规则?

当使用DBContext编写LINQ查询语法表达式时,C#编译器执行其通常的魔法convertingthequerysyntaxintodot/extensionsyntaxusingitslistof18transformation/termrewriterules.然后,在执行查询时,EF会应用自己的内部重写规则来生成SQL表达式。就像我上面链接的文章一样,我想要一份EF正在应用的重写规则的列表。我在哪里可以找到它?如果我知道EF重写规则,我就可以预测EF将为给定查询生成什么SQL,而不必等到运行时才能“查看”生成的SQL。例如,考虑以下两个查询:varresult=fromcin

c# - 从 Entity Framework 中获取最大值和最小值,在一个查询中并尽可能进行最佳查询

我知道this问题,但我想做的是获得与此生成的SQL接近的东西:selectMAX(Column),MIN(Column)fromTableWHEREId=1当我尝试这样做时:varquery=fromdindb.Tablewhered.Id==1selectnew{min=db.Table.Max(s=>s.Column),max=db.Table.Min(s=>s.Column)};生成的sql是这样的:SELECT[Extent1].[Id]AS[Id],[GroupBy1].[A1]AS[C1],[GroupBy2].[A1]AS[C2]FROM[dbo].[Table]AS[

c# - EF6 SQLQuery 非常慢,但数据库非常快

我遇到了一个性能问题,我们已经做了很多分析,但还是卡住了。希望你们中的一个人以前见过这个。我正在调用DbContext.Database.SqlQuery数据库部分需要3毫秒,但完整执行需要9秒。我们使用EFProfiler发现了这一点,我们还在SQLServerManagementStudio中直接运行SQL,它是即时的。我们还使用了glimpse,但无法深入了解该过程。结果类型不是模型中的实体,因此我们确信不涉及跟踪。我们还知道这不是针对上下文执行的第一个查询,因此我们不会为此查询支付EF启动成本。我们尝试了.net分析器,但在运行时遇到了很多问题,因此我们决定只问一下。关于如何深

c# - Lambda 表达式 order by and take issue

我有一个IQueryable列表,带有COLOURS类类型IQueryablerenkler=dbcontext.colours.Select(s=>newCOLOURS{....我想随机获取2行,我正在使用此代码块来执行此操作:renkler.OrderBy(o=>Guid.NewGuid()).Take(2);我想要2行,但有时会变成3行或5行:Take(2)不工作-有什么问题?我检查的时候发现了一些东西varresult=NewProducts().OrderBy(o=>Guid.NewGuid()).Take(2);intresult_count=result.Count();

c# - Entity Framework 核心代码优先 : Cascade delete on a many-to-many relationship

我正在使用Entity-FrameworkCore(版本"EntityFramework.Core":"7.0.0-rc1-final")开发一个ASP.NETMVC6项目,该项目由SQLServer2012ExpressDB支持。我需要为Person之间的多对多关系建模实体和Address实体。根据this指南我用PersonAddress建模了它连接表实体,因为这样我可以存储一些额外的信息。我的目标是以这种方式设置我的系统:如果Person实例被删除,所有相关PersonAddress必须删除实例。所有Address他们引用的实例也必须删除,前提是它们与其他实例无关PersonAd

c# - 调试符号未加载到针对 .NET Framework 的 .NET 标准项目中

我正在使用VisualStudio2017。我创建了一个.NETStandard库(让这个库成为Lib1)项目,其中包含两个Target框架,netstandard2.0和net46。然后我还有另外两个项目...一个是“纯”.NETFramework4.6控制台项目(我们称它为Console46)和一个.NETCore控制台项目(我们称之为ConsoleCore)。它们都引用了Lib1。我在运行ConsoleCore项目的时候,可以调试和下断点,没有任何问题,但是当我运行Console46的时候,VisualStudio无法加载pdb文件,所以无法调试库,下断点等我尝试手动加载PDB文

c# - 本地化表和 Entity Framework

我有一个场景,我需要在我的数据库中本地化对象的值。假设您有一个可以创建动物的应用程序,如果用户是英语,动物的“名称”属性的值将在UI中输入为“Cat”,而在UI中将输入为“Chat”法语。动物培养表将包含2条记录,指向父表中的同一动物。当读回值时,如果用户文化中不存在“名称”的值,则将使用默认值(对象最初创建时使用的值)。下图演示了数据在SQL中的存储方式:我正在尝试使用EntityFramework将此架构映射到对象模型,但我对解决该问题的最佳方式感到困惑。EF适用于此吗?我应该使用EF4吗?此EF模型将由.NETRIA服务使用。谢谢,皮埃尔·伊夫·特罗尔