Tag: 实体 框架

entity framework – SaveChanges()不会获取生成的标识密钥

我在我的项目中使用entity framework,这是一场噩梦! 我有一个SQL DB,我有一个名为Form的表。 表单具有PK和身份的ID(它会自动增加)。 这次我这样做: Dim form as int32 Dim dbform As New Entities1 Dim form696 As New Form dbform.AddToForm696(form) dbform.SaveChanges() ID = form.ID 一周前,ID和form.ID在插入后生成了密钥,但现在只有0。 我不知道发生了什么事就停止了工作。 我不得不更改插入的名称,删除和更新几个表的存储过程,所以我不得不重新映射这一切。 也许我做错了什么,但我一次又一次地看着,一切似乎都好。 有没有人知道为什么?

在multithreading程序中使用EF的好建议?

您是否有一些好的建议在multithreading程序中使用EF? 我有2层: 一个EF层来读/写我的数据库 一个multithreading服务,它使用我的实体(读/写)并进行一些计算(我在框架中使用任务并行库) 如何在每个线程中同步我的对象上下文? 你知道一个好的模式让它发挥作用吗?

EF6 – 运行没有种子的Update-Database命令

我正在使用entity framework6,我正在使用迁移。 我已经使用初始迁移创建了数据库。 现在我已对模型进行了更改,并且上下文已更改,我想更新数据库但是…当我再次尝试运行Database-Update命令时,种子也在运行,这会因为某些数据而导致错误再次插入。 那么,如何在不运行种子方法的情况下运行Update-Database命令? 很难相信EF没有像-No-Seed这样的简单选项。 其他ORM的确如此安全。

C#自定义validation唯一属性 – generics类

我正在尝试进行自定义validation[IsUnique]。 检查属性值是否唯一并返回正确的消息。 这是我的代码,但这只适用于指定的类,是否可以通过元数据来获取正确的类? public class ArticleMetaData { [Required(AllowEmptyStrings = false)] [IsUnique(“Name”)] public String Name{ get; set; } } 我的自定义validation: class IsUnique : ValidationAttribute { public IsUnique(string propertyNames) { this.PropertyNames = propertyNames; } public string PropertyNames { get; private set; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var myproperty = validationContext.ObjectType.GetProperty(PropertyNames); var value = […]

如何更改数据库 – Entity Framework使用的架构(mysql数据库)?

我在项目中使用EntityFramework连接到Mysql数据库。 提供者是Devart Dot.connect。 此应用程序需要使用用户在运行时提供的连接参数连接到数据库。 这当然包括Mysql数据库名称。 我使用EntityConnectionStringBuiler和EntityConnection类来构建和存储自定义连接参数。 问题是即使使用这样的给定参数,应用程序也总是连接到使用visual studio向导设计EntityModel时命名的数据库。 非常奇怪的是,当调试和检查ObjectContext的状态时,自定义连接参数被正确使用……这让我很生气!!!!! 任何线索?

entity framework中推荐的身份生成方法是什么?

我对StoreGeneratedPattern最高效的方式感兴趣。 在过去,我习惯让DB为我生成ID,但我想知道设置是否有任何优势 StoreGeneratedPattern = None 代替 StoreGeneratedPattern = Identity 我甚至不确定当我将它设置为Calculated时会发生什么。 有什么建议? 有没有与此相关的好文章,因为msdn不是很清楚。 我在架构中使用的GUID很少使用整数。

如何允许EF4 CodeFirst数据库初始化程序在开发中运行,但不能在生产中运行

我正在尝试在线部署我的第一个alpha版系统,以便少数人开始使用。 在开发时,我大量使用DropCreateDatabaseOnModelChange (我现在没有它在我面前,所以我无法validation确切的名称)每次我的模型更改时重新初始化我的开发数据库。 这发生在Global.asax 。 但是,我不希望这种情况发生在我的网络主机上,其他人正在输入真实数据。 我需要自己处理所有数据库迁移,以便保留数据。 我曾考虑#ifdef DEBUG标签以防止调用数据库初始化程序,但我不喜欢这种解决方案。 现在,我已经部署了调试版本,所以如果他们遇到任何错误,我很容易看到并调试它们(这是非常非常的alpha,所以只有少数几个人正在使用它并知道预期错误)。 还有哪些其他选项可以防止Prod DB首先被EF4代码丢弃?

如何模拟Entity Framework 6异步方法?

我是嘲笑的新手。 我想模拟我的基础存储库,它依赖于Entity Framework 6 DbContext但是我失败了。 我在Google搜索了很多但没有得到足够的结果。 最后,我得到了一个测试异步查询的例子,并尝试遵循,但它对我有用。 这是我的代码: DbContext: public class TimeSketchContext : DbContext { public virtual DbSet EmployeeSkill { get; set; } } 基础知识库: public class BaseRepository : IRepositoryBase where T : class, IEntity, new() { protected readonly DbContext InnerDbContext; protected DbSet InnerDbSet; public BaseRepository(DbContext innerDbContext) { InnerDbContext = innerDbContext; InnerDbSet = InnerDbContext.Set(); } […]

AspNetUsers的ID作为单独表中的外键,一对一的关系

我上下打量,尝试了所有不同的方法,能够将AspNetUser表的外键存储在一个单独的Customer表中。 我仍然是ASP.NET和entity framework的新手,但我已经阅读了不少post和文档。 目前这就是我所拥有的 楷模 public class Customer { [Display (Name=”Customer ID”)] public int CustomerID { get; set; } public string UserId { get; set; } [ForeignKey(“UserId”)] public virtual ApplicationUser ApplicationUser { get; set; } } public class ApplicationUser : IdentityUser { public virtual Customer Customer { get; set; } } public class ApplicationDbContext : […]

为什么Add-Migration有时会创建重复的迁移?

我在entity framework版本5中遇到代码首次迁移时遇到的奇怪问题。有时,由于挂起的更改, Update-Database失败,但Add-Migration命令仅生成迁移,其中包含上次迁移中已包含的数据库更改,并且数据库是最新的日期。 因此,我希望新的迁移是空的。 Add-Migration如何检测到哪些更改? 它似乎不使用数据库作为源。