Questions tagged «code-first»

代码优先是一种软件实现方法,与其他可能更依赖视觉工具或需要检查某些外部源以生成程序行为,结构或数据的方法相比,它更倾向于针对API进行编程。


17
使用实体框架将更改保存到SQL Server数据库时,一个或多个实体的验证失败
我想将“编辑”保存到数据库,并且在ASP.NET MVC 3 / C#中使用“实体框架”代码优先,但出现错误。在我的Event类中,我有DateTime和TimeSpan数据类型,但是在我的数据库中,我分别有Date和time。这可能是原因吗?将更改保存到数据库之前,如何在代码中强制转换为适当的数据类型。 public class Event { public int EventId { get; set; } public int CategoryId { get; set; } public int PlaceId { get; set; } public string Title { get; set; } public decimal Price { get; set; } public DateTime EventDate { get; set; …

6
实体框架代码优先-来自同一表的两个外键
我刚开始使用EF代码,因此我是该主题的总入门者。 我想在团队和比赛之间建立关系: 1场比赛= 2支球队(主队,客队)和结果。 我认为创建这样的模型很容易,所以我开始编码: public class Team { [Key] public int TeamId { get; set;} public string Name { get; set; } public virtual ICollection<Match> Matches { get; set; } } public class Match { [Key] public int MatchId { get; set; } [ForeignKey("HomeTeam"), Column(Order = 0)] public int …

27
自创建数据库以来,支持<Database>上下文的模型已更改
错误消息: “自创建数据库以来,支持'AddressBook'上下文的模型已更改。要么手动删除/更新数据库,要么使用IDatabaseInitializer实例调用Database.SetInitializer。例如,RecreateDatabaseIfModelChanges策略将自动删除并重新创建数据库,并且(可选)用新数据作为种子。” 我正在尝试使用代码优先功能,以下是我写的内容: var modelBuilder = new ModelBuilder(); var model = modelBuilder.CreateModel(); using (AddressBook context = new AddressBook(model)) { var contact = new Contact { ContactID = 10000, FirstName = "Brian", LastName = "Lara", ModifiedDate = DateTime.Now, AddDate = DateTime.Now, Title = "Mr." }; context.contacts.Add(contact); int result = context.SaveChanges(); Console.WriteLine("Result …

19
实体框架代码优先的唯一约束
题 是否可以使用流利的语法或属性在属性上定义唯一约束?如果没有,有什么解决方法? 我有一个带有主键的用户类,但是我想确保电子邮件地址也是唯一的。是否可以不直接编辑数据库而实现? 解决方案(基于马特的回答) public class MyContext : DbContext { public DbSet&lt;User&gt; Users { get; set; } public override int SaveChanges() { foreach (var item in ChangeTracker.Entries&lt;IModel&gt;()) item.Entity.Modified = DateTime.Now; return base.SaveChanges(); } public class Initializer : IDatabaseInitializer&lt;MyContext&gt; { public void InitializeDatabase(MyContext context) { if (context.Database.Exists() &amp;&amp; !context.Database.CompatibleWithModel(false)) context.Database.Delete(); if …

5
Entity Framework Code First是否支持存储过程?
我已经看过EF Code First的一些演示,还没有看到EFCF如何与存储过程一起工作。 如何声明将使用某些sp的方法?是否可以将实体传递给调用sp的方法,而无需手动将实体属性映射到sp参数? 另外,如果我更改模型会怎样?从模型重新创建表格时,它会掉落我的sp吗?那触发器呢? 如果不支持这些功能,将来是否有计划支持它们?

13
实体框架DateTime和UTC
是否可以让实体框架(我目前正在使用CTP5的代码优先方法)将所有DateTime值存储为数据库中的UTC? 或者也许有一种方法可以在映射中指定它,例如在此中的last_login列: modelBuilder.Entity&lt;User&gt;().Property(x =&gt; x.Id).HasColumnName("id"); modelBuilder.Entity&lt;User&gt;().Property(x =&gt; x.IsAdmin).HasColumnName("admin"); modelBuilder.Entity&lt;User&gt;().Property(x =&gt; x.IsEnabled).HasColumnName("enabled"); modelBuilder.Entity&lt;User&gt;().Property(x =&gt; x.PasswordHash).HasColumnName("password_hash"); modelBuilder.Entity&lt;User&gt;().Property(x =&gt; x.LastLogin).HasColumnName("last_login");



5
如何禁用代码优先迁移
我在EF5中有一个代码优先的实体模型。但是我想手动管理数据库更改-我不希望EF修改现有数据库及其所有数据。但是,当我在EF映射和数据库中进行并行更改时,EF拒绝正常运行,并告诉我需要先使用代码迁移。如何关闭此功能?

3
如何使用Entity Framework Code First Fluent API指定表名
我有一个实体,我要配置实体框架以将其映射到具有不同名称的数据库表。 我可以使用Code First DataAnnotations(DataAnnotations.Schema.TableAttribute)轻松地做到这一点。 但是由于现在的限制,我必须使用Code First Fluent API(我的域对象将由外部客户端使用,因此它们不应该是特定于技术的-例如,对DataAnnotations的任何引用) 我已经在MSDN上搜索了,但是什么也没找到。那么有可能吗? 谢谢。



4
实体框架-有没有自动方法而无需Include()来自动加载子实体的方法吗?
有没有办法装饰您的POCO类以自动渴望加载子实体,而不必Include()每次加载它们时都使用它们? 假设我有一辆有轮,门,引擎,保险杠,窗户,排气等复杂类型属性的类车。在我的应用中,我需要从DbContext的20个不同的地方加载汽车,并进行不同的查询,等等。不需要指定每次要加载汽车时都包含所有属性。 我想说 List&lt;Car&gt; cars = db.Car .Where(x =&gt; c.Make == "Ford").ToList(); //NOT .Include(x =&gt; x.Wheels).Include(x =&gt; x.Doors).Include(x =&gt; x.Engine).Include(x =&gt; x.Bumper).Include(x =&gt; x.Windows) foreach(Car car in cars) { //I don't want a null reference here. String myString = car.**Bumper**.Title; } 我可以以某种方式装饰我的POCO类或在我的POCO类中OnModelCreating()设置还是在EF中设置一个配置,以告诉它在加载汽车时仅加载汽车的所有零件?我希望能做到这一点,所以我的理解是将导航属性设置为虚拟。我知道NHibernate支持类似的功能。 只是想知道我是否缺少什么。提前致谢! 干杯, 内森 我喜欢下面的解决方案,但想知道是否可以将对扩展方法的调用嵌套。例如,假设我在Engine上遇到类似的情况,其中有很多我不想包含在所有地方的零件。我可以做这样的事情吗?(我还没有找到一种可行的方法)。这样,如果以后发现Engine需要FuelInjectors,则可以仅将其添加到BuildEngine中,而不必也将其添加到BuildCar中。另外,如果可以嵌套调用,如何嵌套对集合的调用?是否想从BuildCar()中为每个车轮调用BuildWheel()? public static IQueryable&lt;Car&gt; BuildCar(this …

5
如何在EF代码优先数据库中删除一对多的子记录?
好吧,我有一对多的相关模型: public class Parent { public int Id { get; set; } public string Name { get; set; } public ICollection&lt;Child&gt; Children { get; set; } } public class Child { public int Id { get; set; } public string ChildName { get; set; } } 我要做的是清除Parent.Children并从数据库中删除相关的子实体。我已经尝试过: 数据库上下文类: modelBuilder.Entity&lt;Parent&gt;() .HasMany(p …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.