Tag: entity framework 5

Entity Framework 5.0复合外键到非主键 – 是否可能?

我在.net 4.5控制台应用程序中使用Entity Framework 5.0.0.0,我必须访问一个包含两个表的数据库,它们之间有外键关系,如下所示: 奇怪的是,外键在B(Almost1, Almost2)和A(Almost1, Almost2)而不是从B(AId)到A(AId) 。 SQL服务器允许这样做,因为Almost1和Almost2组合是唯一的,并且都不可为空(至少在表A上 – 在B它们是可选关系,但是由by表示)。 这是创建这种情况的一些SQL: CREATE TABLE [dbo].[A]( [AId] [int] IDENTITY(1,1) NOT NULL, [Almost1] [int] NOT NULL, [Almost2] [int] NOT NULL, CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED ( [AId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT […]

entity frameworkDbContext更新值无需查询和外键

我有一个更新一些表的方法。 对于更新,我需要获得TestProcess第一个,但我不喜欢它。 如何在没有select(firstOrDefault)操作的情况下更新TestProcess ,仅用于更新操作? 方法示例: public void UpdateTestProcess(int id, string updateID) { using (TestEntities context = new TestEntities()) { TestProcess pr = context.TestProcess.FirstOrDefault(x => x.MyID == id); pr.UpdateID = updateID; context.TestProcess.Attach(pr); context.ObjectStateManager.ChangeObjectState(pr, EntityState.Modified); context.SaveChanges(); } }

entity framework5性能不佳

我有5个实体: public class Album { public int Id { get; set; } public string Title { get; set; } public virtual List AlbumArtists { get; set; } public virtual List Artists { get; set; } public virtual List Genres { get; set; } public virtual List Songs { get; set; } } public class AlbumArtist […]

如何避免System.Data.Entity.Infrastructure.DbUpdateException

我有这个DbContext对象,包括 – – Employee – CompanyAddress (PK: AddressFirstLine, City) Note: one Employee can have many CompanyAddress 仅当 CompanyAddress表中不存在某些地址时,记录才会添加到CompanyAddress表中。 如果我有两个来自数据库的DBContext对象,请说Snapshot1,Snapshot2。 假设在拍摄这两个快照时,CompanyAddress表中没有记录。 当对Snapshot1进行更改并保存时 – 将记录写入CompanyAddress表。 当对Snapshot2进行更改并使用保存时 mydataContext.SaveChanges(); exception发生: System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint ‘PK_CompanyAddress’. Cannot insert duplicate key in object ‘dbo.CompanyAddress’ 似乎保存Snapshot1会使Snapshot2变脏,因为当它们保存回数据库时,两者都有相同的 CompanyAddress记录。 我可以在dbContext对象上进行哪些其他调用/设置以避免此错误? 谢谢!

当使用基类和私有setter时,关键组件“Id”不是“TypeName”类型的声明属性

我想为实体使用抽象基类,它不映射到任何表: public abstract class Entity { public virtual int Id { get; private set; } } 由于Id将自动增加,我不想允许从外部更改此属性。 因此,它的二传手是private 。 这是一个示例实体类型: public class Order : Entity { public virtual string Customer { get; set; } } …配置类型: public class EntityConfiguration : EntityTypeConfiguration where TEntity : Entity { public EntityConfiguration() { HasKey(o => o.Id); Property(o => o.Id).HasColumnName(“id”).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); […]

如何在winforms中使用EF进行双向数据绑定?

我很擅长编码。 现在我要告诉你我目前的情况和我想去的地方。 希望你会帮忙。 我正在使用EF5.0数据库第一种方法,我希望能够使用gridviews列出和更新数据库值。 目前我正在绑定我的数据,如下所示: pehlivan_kabametrajEntities ctx = new pehlivan_kabametrajEntities(); var result = from k in ctx.Kolons select k; dataGridView1.DataSource = result.ToList(); 此代码完美地列出了我的数据。 但是,对我的需求来说,这是错误的或不够的。 因为我希望能够在gridview上编辑我的数据。 请告诉我有什么问题,我应该怎么做。 至少链接的一些文件会让我到达我想要的目的地点,这将是很棒的。 谢谢。

具有可选参数的entity framework?

使用Entity Framework 5是否可以使用带有可选参数的存储过程,这样您就不必为每个未使用的参数添加空值? 我必须使用的存储过程有87个参数,其中只有2个是必需的。 我真的很讨厌在每个调用中放入85个空值的想法。

EF5不会创建枚举列

我有这样的模型: namespace Ad.NegCred.Data.Model { public enum DataKind { F, //Takibe alınıp henüz tahsil edilmeyen ferdi kredi bildirimi FA, //Aynı dönemde takibe alınan ve tahsil edilen ferdi kredi bildirimi FF, //daha önceki dönemlerde takibe alındığı bildirilmiş ferdi kredi tahsil bildirimi K, //Takibe alınıp henüz tahsil edilmeyan kredi kartı KA, //Aynı dönemde takibe alınan ve tahsil edilen […]

如何在Linq中将Arithabort设置为实体?

我已经找到了很多关于如何在Linq中将Arithabort设置为SQL的答案,但在Linq to Entities中没有任何答案。 在Linq to SQL中,您可以这样做: using (var conn = new SqlConnection(connectionString)){ cmd = conn.CreateCommand(); cmd.Connection.Open(); cmd.CommandText = “set arithabort on;”; cmd.ExecuteNonQuery(); // Line 5 using (var db = new MyDataContext(conn)) { … } } 但是如果我做同样的事情,只是在上面的代码片段中用SqlConnection替换EntityConnection ,我在第5行得到一个运行时错误: 查询语法无效。 标识符’arithabort’附近,第1行,第5列。 我猜它与Linq2Sql硬连线的事实有关,而EF可以在其他数据库上工作。 那么诀窍是什么?

如何递归地包括所有可导航属性以模拟延迟加载

为了模拟延迟加载,我希望有一个方法递归地通过Eager Loading包含完整的对象图,这样在加载实体时,它的所有相关数据也会被加载。 从MSDN文档: 要包含单个引用:query.Include(e => e.Level1Reference)。 要包含单个集合:query.Include(e => e.Level1Collection)。 要包含引用,然后引用一个级别:query.Include(e => e.Level1Reference.Level2Reference)。 要包含一个引用,然后是一个级别的集合:query.Include(e => e.Level1Reference.Level2Collection)。 要包含一个集合,然后向下一级引用:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))。 要包含一个集合,然后是一个级别的集合:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))。 要包含一个集合,然后向下一级引用:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))。 要包含一个集合,然后是一个级别的集合:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))。 要包含一个集合,一个引用和一个引用两个级别:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference))。 要包括集合,集合和引用两个级别:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference)))。 题: 我如何递归地包含所有可导航属性并将其构建到通用存储库方法中,这样我可以在需要时获得实体的深层对象图,无论是否添加了新属性?