Tag: entity framework 6.1

仅在数据库中存储日期而不是时间部分C#

我有一个测试类和一个ExecutionDate属性,它只存储日期,但是当我们使用[DataType(DataType.Date)] ,它也将时间部分存储在数据库中,但我只想要日期部分。 public class Test { [Key] public int Id { get; set; } [DataType(DataType.Date)] public DateTime ExecutionDate { get; set; } } 有没有办法只使用Entity Framework在db中存储日期时间部分? 请帮我…. 我在使用[DataType(DataType.Date)]时添加了快照,它存储时间部分00:00我要删除它

entity framework6.1更新记录的子集

我有一个视图模型,只封装了一些数据库模型属性。 视图模型包含的这些属性是我想要更新的唯一属性。 我希望其他属性保留其价值。 在我的研究过程中,我发现这个答案看起来很适合我的需求,但是,尽管我付出了最大努力,但我无法让代码按预期工作。 这是我提出的一个孤立的例子: static void Main() { // Person with ID 1 already exists in database. // 1. Update the Age and Name. Person person = new Person(); person.Id = 1; person.Age = 18; person.Name = “Alex”; // 2. Do not update the NI. I want to preserve that value. // person.NINumber = […]

无法更新entity framework6中的外键

我正在尝试对外键进行简单更新,但脚本永远不会被发送过来。 这是我正在使用的代码: using (var db = new MyContext()) { db.Entry(newContact).State = EntityState.Modified; newContact.ContactOwner = db.Person.Find(3); db.SaveChanges(); } EF6更新Persons表中的其余列,但它不更新Persons表中的Contact_Id。 人物实体: public class Person { public int Id { get; set; } public string Name { get; set; } public List ContactList { get; set; } } 联系实体: public class Contact { public int Id { get; […]

忽略entity framework代码中的基类型也会忽略子类吗?

我正在尝试模拟一个场景,在这个场景中,我从第三方库中的具体基类inheritance,然后使用Entity Framework Code First映射我自己的类。 我更希望我的类具有与基类相同的简单名称。 我显然不能更改基类的类名,也不能将基类更改为抽象。 正如所料,我收到以下错误: 类型’EfInheritanceTest.Models.Order’和类型’EfInheritanceTest.Models.Base.Order’都具有相同的简单名称’Order’,因此不能在同一模型中使用。 给定模型中的所有类型都必须具有唯一的简单名称。 使用“NotMappedAttribute”或在Code First Fluent API中调用Ignore,以从模型中明确排除属性或类型。 据我所知,在EF6中,只要实际映射了其中一个类,就可以实现。 但是,如果我尝试使用流畅的API忽略基类,我会收到以下错误: 未映射“EfInheritanceTest.Models.Order”类型。 使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型。 validation类型是否已定义为类,不是原始类型还是通用类型,并且不从EntityObjectinheritance。 …这似乎表明通过忽略基类,我也忽略了任何子类。 完整代码如下。 有什么方法可以解决这个问题并且“unignore”这个子类? 或者这是EF类型映射的限制? namespace EfInheritanceTest.Models.Base { public class Order { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual decimal Amount { get; set; } } } […]

entity framework创建空迁移但坚持我的模型不同

今天是悲伤的一天。 今天第一件事我看到EFexception说“ 自创建数据库以来,支持’DomainContext’上下文的模型已经改变了。 ” 它接近午夜,我仍然看到这个错误。 这是我职业生涯的终结 – ( 我很确定模型中没有任何变化,但错误出现了。 我尝试过创建一个新的迁移,它是空的: public void Up() { } public void Down() { } 应用此迁移没有任何好处 – 错误仍然存​​在。 我使用了常见的建议将初始化设置为null: Database.SetInitializer(null); 当我访问数据库时,它使错误消失了。 但这让我非常困扰 – 每当我尝试通过代码运行迁移时,我再次看到类似的错误: var configuration = new Migrations.Configuration(); configuration.TargetDatabase = new DbConnectionInfo(“correct connection string”, “System.Data.SqlClient”); var migrator = new DbMigrator(configuration); migrator.Update(); // <<– exception is thrown here Exception throw如下所示: […]

持久化entity framework查询缓存

我有一个ASP.NET MVC 5 Web应用程序,并使用EF 6.1访问我的数据库。 我有一些相当复杂的LINQ查询,最多需要10秒才能编译,但之后会在几毫秒内执行。 EF确实缓存了这些查询,第二次执行查询时,它会在几毫秒内返回。 但是这个缓存不会持久存在,所以在每个应用程序重新启动时,需要重新编译查询,再次需要10秒。 有没有办法保持这个查询缓存,以便它能够在应用程序重启后幸存下来?