Tag: entity framework

使用include不会改变行为

有人可以帮我澄清之间的区别: var query = awlt.People.Include(p => p.EmailAddresses) .Where(p => p.LastName.Equals(lastName)) .SelectMany(a => a.EmailAddresses) .Select(a => a.EmailAddress1); var query = awlt.People .Where(p => p.LastName.Equals(lastName)) .SelectMany(a => a.EmailAddresses) .Select(a => a.EmailAddress1); 在两种情况下我都得到相同的结果而不知道差异。 Eager Loading是否需要使用Include ?

动态LINQ日期时间比较字符串构建 – Linq To实体

我正在使用Scott Guthrie的动态LINQ库以及Entity Framework和C#。 我必须根据几个因素将where字符串构建到变量中,然后将字符串变量传递给where子句。 出于某种原因,这将有效: ContactList = ContactList.Where(“DateAdded >= @0”, DateTime.Parse(“12/1/2012”)); 但这不起作用 string WhereClause = string.Format(“DateAdded >= {0}”, DateTime.Parse(“12/1/2012”)); ContactList = ContactList.Where(WhereClause); 如上所述,我需要在传递变量的版本中使用它。 谁知道为什么第二个不起作用? 提前致谢!

使用Entity Framework搜索数据库时忽略重音

我有一个数据库表,其中包含带有重音字符的名称。 像ä等。 我需要从包含一些子字符串的表中使用EF4获取所有记录, 而不管重音是什么 。 所以下面的代码: myEntities.Items.Where(i => i.Name.Contains(“a”)); 应该返回名称中包含a所有项目,以及包含ä , â等所有项目。 这可能吗?

如何使用Entity Framework 6 Code First更改现有列的大小

我有一个POCO工厂,它映射到我的数据库中的表dbo.Plant(SQL SERVER 2014)。 数据库中的某些列的数据类型为nvarchar(max)NULL。 我正在尝试使用以下代码通过EntityTypeConfiguration更改数据类型: Property(x => x.PCode).HasMaxLength(25); 但是,在添加迁移(添加迁移名称)时,生成的Up() – 方法将不包含此列的任何更改。 但是,如果我也像这样要求它: Property(x => x.PCode).HasMaxLength(25).IsRequired(); ..然后在Up() – 方法中进行适当的更改: AlterColumn(“dbo.Plant”, “PCode”, c => c.String(nullable: false, maxLength: 25)); 是否可以让它只注册尺寸的变化而不改变可空性? 编辑:我已经设法通过直接在Up()和Down() – 方法中进行更改来解决问题,但问题仍然存在,如果有任何事情只会使用EntityTypeConfiguration自动触发此更改。

EntityFramework在保存更改之前显示实体

entity frameworkObjectSet及其方法ToList显示刚刚保存的实体。 这意味着,当我打电话 context.AddToCustomers(myNewCust); 然后(不调用SaveChanges) myDataGrid.DataContext = context.Customers.ToList(); DataGrid不显示新添加的实体(即使context.Customers.Count()也不包含它)。 有没有办法显示这些实体(那些具有EntityState = Added )? 提前致谢。

使用uint而不是int作为数据模型类中的主键是否是个好主意?

我们知道主键通常是正整数。 使用uint而不是int作为数据模型类中的主键是否是个好主意? 示例 : public class Customer { public uint CustomerId {get;set;} //others are omitted for the sake of simplicity. }

如何使用Oracle的Entity Framework支持强制使用pascal案例?

Oracle的entity framework支持使所有类名称都是大写并且带有下划线。 因此ORDER_ITEMS表在类名中变为ORDER_ITEMS。 但我想使用Pascal案例作为类名。 ORDER_ITEMS ==> OrderItems是通缉的。 如何更改默认命名规则?

无法在Entity Framework中创建“System.Object”类型的常量值

我有一个名为UserTenders的表与aspnet_Membership表有aspnet_Membership关系。 我正在使用EntityFramework 4.0,当我尝试这样的东西时,它会出错。 var tenders = ctx.UserTenders .Where(tender => tender.HasAdminApproved.Equals(true)) .ToList(); 错误是 System.NotSupportedException 无法创建“System.Object”类型的常量值。 在此上下文中仅支持基本类型(例如Int32,String和Guid’)。 下面的代码片段有效。 var tenders = ctx.UserTenders.ToList(); 我的代码可能有什么问题? 觉得我错过了一些非常微不足道的事情。 我想过滤所有bit字段HasAdminApproved为true

删除对象及其相关实体

有谁知道如何删除对象及其所有相关实体。 例如,我有表,Products,Category,ProductCategory和productDetails,productCategory正在连接Product和Category的表。 我从http://msdn.microsoft.com/en-us/library/bb738580.aspx上读到 删除父对象还会删除受约束关系中的所有子对象。 此结果与在关系的关联上启用CascadeDelete属性相同。 我正在使用此代码: Product productObj = this.ObjectContext.Product.Where(p => p.ProductID.Equals(productID)).First(); if (!productObj.ProductCategory.IsLoaded) productObj.ProductCategory.Load(); if (!productObj.ProductDetails.IsLoaded) productObj.ProductDetails.Load(); //my own methods. base.Delete(productObj); base.SaveAllObjectChanges(); 但我在ObjectContext.SaveChanges();上收到错误ObjectContext.SaveChanges(); 也就是说, 正在从AssociationSet ‘添加或删除关系。 使用基数约束时,还必须添加或删除相应的“ProductCategory”。

关于entity framework迁移的空引用

当我使用Entity Framework迁移的Add-Migration命令时,我得到以下exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetFileName(Project project, String projectItemName) at System.Data.Entity.Migrations.MigrationsCommands..ctor(Object project, Object startUpProject, String configurationTypeName, String connectionStringName, String connectionString, String connectionProviderName, PSCmdlet cmdlet) 任何见解?