Tag: entity framework

什么是EF默认ID命名约定代码?

我使用EF代码第一种方法。 我开始制作映射文件(我来自nihbernate背景),但发现你真的不需要它们,除非你需要做一些改变。 我想知道它将用于我的Id的命名约定? 它是Product_Id还是ProductId ? 编辑 根据迄今为止的评论,这让我有点困惑。 我问的是因为我添加了2个新类(即表)并将它们连接起来并重新创建了我的数据库。 我的表中与我的新表有关系的两个FK都有“Product_Id”,我想也许是因为我没有映射。 我刚尝试使用映射和相同的问题。 所有其他表关系都有Camel Upper Case。 编辑2 嗯,时髦的东西在我的桌子上有两次相同的名字。 一旦它将其视为FK,另一次将其视为常规列。 编辑3 想出来,说出来并在这里发帖帮我隔离问题。 原因是因为我正在做poco方式 public Product Product {get; set;} public Guid ProductId { get; set; } 我现在发布我的ProductId我设置为int类型所以发生的事情是它会在db中生成一个名为ProductId的列,然后当它有时间制作FK时它不再使用ProductId并且不得不使用Product_Id

DbGeography替代C#POCO

我正在编写一个应用程序,我需要查询某个位置半径内的记录。 我开始在我的PCO上只有一对纬度/长的属性,但意识到SQL中的空间搜索是针对列类型的地理位置完成的,这种搜索在POCO中转换为DbGeography(在另一个SOpost中引用,也使用EF Powertools Reverse工程师POCO)。 所以,我看到的问题是我尽可能保持我的POCOS干净,尽可能地将所有引用/依赖性遗漏给entity framework和持久性存储。 我在模型/域组件中有我的POCOS,它永远不应该引用EF。 只有我的Repository类和DataStore for DbContext子类和Fluent Configuration项目才知道EF。 我还使用流畅的配置远离DataAnnotation属性。 一旦你放入DbGeography你就需要’使用System.Data.Entity.Spatial’和’EF’来打破持久性不可知的方法,至少对于“普通”的旧C#对象 。 有了这么多的数据库平台,并且尽可能地使这个系统成为未来的certificate,在我想切换到另一个持久性存储的事件中重写数据存储代码的最小努力,保持我的域代码尽可能干净是非常重要的。 我发现基于EF流畅的基于代码的配置被引入并且允许我们不必使用DataAnnotations属性因此保持System.Data.Entity不在混合中,但是在空间上他们打破了模式。 有谁知道如何处理我正在尝试做的事情? – 斯科特评论后更新:所以还有一个小问题。 我有对System.Data.Entity的引用,我在我的模型上有这个: public System.Data.Spatial.DbGeography GeoLocation {get; 组; } 我在配置类中有这个: this.Property(t => t.GeoLocation).HasColumnName(“GeoLocation”)。HasColumnType(“geography”); this.Property得到下划线,我得到这个编译错误: 严重性代码描述项目文件行抑制状态错误CS0453类型’DbGeography’必须是非可空值类型才能在generics类型中将其用作参数’T’或方法’StructuralTypeConfiguration.Property(Expression>)’FoodRadar.DataStore C:\ Developer \ SrcSt \ FoodRadar \ FoodRadar.DataStore \ Configuration \ VendorConfiguration.cs 66 Active 我尝试了另一个使用t4模板的反向poco生成器,它使用System.Data.Entity.Spatial.DbGeography生成,但仍需要引用EntityFramework。 我该如何指定映射?

如何在join linq语法中比较null

加入EF 4 C #Face问题。 sql语法 Select a.Code, b.Name from DepartmentMaster a Join DepartmentDetail b on isnull( a.ID,0) =isnull( b.ID,0) 注意: a.ID,b.ID都可以为空 想要使用Linq语法输出上面的语法.Bellow语法对我不起作用 Var r=from a in DepartmentMaster Join b in DepartmentDetail on a.ID equals b.ID Select a.Code,b.Name 需要帮助在linq ef中编写sql语法isnull()可比较的过程。 如有任何疑问请咨询。

在Visual Studio 2015中安装entity framework失败

我正在阅读/编写Adam Freeman的Apress书籍Pro ASP.NET MVC 5 。 在第7章(p.174)中,我们应该使用以下命令安装Entity Framework: Install-Package EntityFramework -projectname SportsStore.Domain Install-Package EntityFramework -projectname SportsStore.WebUI 但这失败了。 这是输出: 试图针对项目’SportsStore.Domain’收集包’EntityFramework.6.1.3’的依赖关系信息,目标是’.NETFramework,Version = v4.5.1′ 尝试使用DependencyBehavior’Lowest’解决包’EntityFramework.6.1.3’的依赖关系 解决安装包’EntityFramework.6.1.3’的操作 解决了安装包’EntityFramework.6.1.3’的操作 将包’EntityFramework.6.1.3’添加到文件夹’C:\ git \ SportsStore \ packages’ 将’EntityFramework.6.1.3’包添加到文件夹’C:\ git \ SportsStore \ packages’ 将’EntityFramework.6.1.3’包添加到’packages.config’ 执行脚本文件’C:\ git \ SportsStore \ packages \ EntityFramework.6.1.3 \ tools \ init.ps1′ 执行脚本文件’C:\ git \ SportsStore \ packages […]

entity framework一对多的关系

我的EF查询需要大约3秒来获取10个玩家,因为它获取了另一个表的所有500k +行,而不是我需要的几个。 这是PlayerEntity: namespace RocketLeagueStats.Database.Entities { [Table(“players”, Schema = “public”)] public class PlayerEntity { [Key] [Column(“id”)] public int Id { get; set; } [Column(“unique_id”)] public string UniqueId { get; set; } [Column(“display_name”)] public string DiplayName { get; set; } [Column(“platform_id”)] [JsonIgnore] public int PlatformId { get; set; } [ForeignKey(“PlatformId”)] public PlatformEntity Platform { get; set; […]

C#Entity Framework:不支持关键字:’port’

您好我有一个以上的项目连接到CodeFirst Entity Framework的某个数据库。 除了一个顽固的项目外,所有项目都能成功连接。 我得到的错误是: Keyword not supported: ‘port’ 我查看了无数的stackoverflow问题,mysql论坛,entity framework论坛等,包括: MappingException Edm.String与SqlServer.varbinary不兼容 MySQL的连接字符串中不支持关键字 不支持关键字:’元数据’+ MySQL 我的连接字符串如下所示: server=myservername;port=3306;uid=myaccount;database=mydb;pwd=mypwd123 我的db.cs文件如下所示: public partial class MyDB : DbContext { public MyDB () : base(“server=myservername;port=3306;uid=myaccount;database=mydb;pwd=mypwd123”) { Logger.Trace(“test123”); } public virtual DbSet MyItems { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .Property(e => e.Content) .IsUnicode(false); } } […]

在EF 6中缺少QueryableExtensions

我无法调用EntityFramework 6提供的新QueryableExtensions ( ToListAsync , ForEachAsync ,…)但我可以调用其他人( Include , Intersect )。 我有一个System.Data.Entity的引用。 显然,我有一个较旧版本的System.Data.Entity ,以及最新版本的EntityFramework。 可能吗? 我的代码无法编译,我无法在对象浏览器中看到ForEachAsync方法。 我正在使用Visual Studio 2013,.Net 4.5,EntityFramework 6.1.3,Wpf。 编辑 entity framework已安装: 我已经尝试卸载然后重新安装包多次,重新启动visual studio。 还是行不通 编辑 在另一个项目(由此引用)中,我可以在对象浏览器中看到所需的IQueryableExtensions 。 如果我将此项目添加到我的解决方案中(在它只是一个引用之前),则对象浏览器中缺少所需的IQueryableExtensions 。

entity framework代码首先将多个相同类型的复杂类型映射到表

如果您有以下域模型: public class Test { public string Description { get; set; } public TestB A { get; set; } public TestB B { get; set; } public TestB C { get; set; } } public class TestB { public string Name { get; set; } public string Description { get; set; } } 你有一个具有以下结构的表: Test […]

部署使用LINQ to Entities的应用程序

我想使用L2E,因为它对我公司的应用非常方便,我创建了一个演示项目,演示确实在每台机器上运行但是当我说,按下一个按钮,其中包含一些使用该实体的代码我得到了这个错误: specified store provider cannot be found in the configuration, or is not valid. 请注意,我只在没有安装VS2008的机器上得到此错误,在这些机器上(VS2008的机器),该演示效果很好。 任何建议表示赞赏。 我正在使用MySql服务器与Mysql Conector 6.3,并使用ADO.Net权利模型创建模型。 编辑 这是完整的错误跟踪: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentException: The specified store provider cannot be found in the configuration, or […]

entity framework6.1.1和Npgsql 2.2.3:找不到兼容的entity framework数据库提供程序

我正在使用Visual Studio 2012 Update 4中的EntityFramework 6.1.1和npgsql 2.2.3开发项目。为此,我使用提供的安装程序安装了npgsl并安装了nuget软件包“Npgsql”和“Npgsql for Entity Framework”(和“EntityFramework”本身,当然)。 过去一切都很好:我可以成功访问我的数据库一段时间 – 直到有一天所有东西都“爆炸”。 这是事件历史: 在主要代码升级后修复编译器错误我遇到了以下错误消息: “无法加载npgsl.EntityFrameworkLegacy assmbly”(我既没有安装也没有引用这个程序集) 一大堆“元数据文件’xxx’找不到”错误,其中’xxx’指向我自己的项目程序集 我找到了可能的解决方案“元数据文件”问题 – 比如删除.suo文件,检查项目构建顺序等等。 他们都没有解决问题。 所以我从我的项目中删除了.edmx文件(以及所有自动生成的数据库访问文件)。 这修复了“元数据文件”的问题 – 当然引入了“未解析的符号”。 我试图在我的项目中添加一个新的“ADO.NET实体数据模型”以重新获得数据库访问权限。 只有连接列表中没有列出的所有PostgreSQL数据库连接。 此外,我无法创建新的PostgreSQL连接,因为未列出此数据源。 虽然这不影响Visual Studio中的全局“数据连接”对话框:在这里我仍然可以访问我的PostgreSQL连接。 我使用安装程序重新安装了npgsql。 现在我可以创建一个新的“ADO.NET实体数据模型”并连接到我的PostgreSQL数据库。 但是这次我收到错误消息:“ 您的项目引用了最新版本的Entity Framework;但是,找不到与此版本兼容的Entity Framework数据库提供程序 ”[…]。 这就是我现在被困住的地方。 我目前的设置是: 该项目涉及以下程序集: .NET 4.5的EntityFramework 6.1.1 EntityFramework.SqlServer 6.1.1 for .NET 4.5 适用于.NET 4.5的Npgsql 2.2.3 适用于.NET 4.5的Npgsql.EntityFramework 2.2.3 […]