标签: code-first

为什么在许多/一对多的关系中使用ICollection而不是IEnumerable或List <T>?

我在教程中看到了很多,导航属性为ICollection<T>.

这是实体框架的强制性要求吗?我可以用IEnumerable吗?

使用ICollection代替IEnumerable甚至是什么的主要目的是List<T>什么?

c# entity-framework icollection code-first

342
推荐指数
6
解决办法
16万
查看次数

使用Entity Framework保存对SQL Server数据库的更改时,一个或多个实体的验证失败

我想保存我的编辑到数据库,我在ASP.NET MVC 3/C#中使用实体框架代码优先,但我收到错误.在我的Event类中,我有DateTime和TimeSpan数据类型,但在我的数据库中,我分别有日期和时间.这可能是原因吗?在保存对数据库的更改之前,如何在代码中转换为适当的数据类型.

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; }
    public TimeSpan StartTime { get; set; }
    public TimeSpan EndTime { get; set; }
    public string Description { get; set; }
    public string EventPlaceUrl { get; set; }
    public Category Category …
Run Code Online (Sandbox Code Playgroud)

c# sql asp.net-mvc entity-framework code-first

333
推荐指数
6
解决办法
31万
查看次数

实体框架代码优先 - 来自同一个表的两个外键

我刚开始使用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 HomeTeamId { get; set; }
    [ForeignKey("GuestTeam"), Column(Order = 1)]
    public int GuestTeamId { get; set; }

    public float HomePoints { get; set; }
    public float GuestPoints { get; set; }
    public DateTime …
Run Code Online (Sandbox Code Playgroud)

c# orm entity-framework code-first entity-framework-4.1

252
推荐指数
6
解决办法
14万
查看次数

自数据库创建以来,支持<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 :- "+ result.ToString());
}
Run Code Online (Sandbox Code Playgroud)

上下文类:

public class AddressBook : DbContext
{
    public AddressBook()
    { }
    public AddressBook(DbModel AddressBook)
        : base(AddressBook)
    {

    }
    public DbSet<Contact> contacts { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

.net code-first entity-framework-4

245
推荐指数
9
解决办法
23万
查看次数

实体框架代码中的唯一约束优先

是否可以使用流畅的语法或属性在属性上定义唯一约束?如果没有,有哪些解决方法?

我有一个带有主键的用户类,但我想确保电子邮件地址也是唯一的.这是否可以直接编辑数据库?

解决方案(基于马特的答案)

public class MyContext : DbContext {
    public DbSet<User> Users { get; set; }

    public override int SaveChanges() {
        foreach (var item in ChangeTracker.Entries<IModel>())
            item.Entity.Modified = DateTime.Now;

        return base.SaveChanges();
    }

    public class Initializer : IDatabaseInitializer<MyContext> {
        public void InitializeDatabase(MyContext context) {
            if (context.Database.Exists() && !context.Database.CompatibleWithModel(false))
                context.Database.Delete();

            if (!context.Database.Exists()) {
                context.Database.Create();
                context.Database.ExecuteSqlCommand("alter table Users add constraint UniqueUserEmail unique (Email)");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

entity-framework unique-constraint code-first

125
推荐指数
6
解决办法
6万
查看次数

Entity Framework Code First是否支持存储过程?

我已经看了几次EF Code First的演示,还没有看到EFCF如何与存储过程一起工作.

如何声明一个将使用某些sp的方法?我是否可以将实体传递给调用sp的方法,而无需手动将实体属性映射到sp参数?

另外,如果我改变模型会发生什么?它会在从模型中重新创建表格时丢失我的sp吗?触发器呢?

如果不支持这些东西,是否有计划在将来支持它们?

c# stored-procedures entity-framework code-first

112
推荐指数
4
解决办法
9万
查看次数

首先,在实体框架代码中,如何在多个列上使用KeyAttribute

我正在创建一个POCO模型,首先使用实体​​框架代码CTP5.我正在使用装饰来创建PK列的属性映射.但是如何在多个列上定义PK,具体来说,如何控制索引中列的顺序?这是班级中属性顺序的结果吗?

谢谢!

entity-framework code-first entity-framework-ctp5

91
推荐指数
4
解决办法
5万
查看次数

实体框架DateTime和UTC

是否有可能拥有实体框架(我目前使用的是Code First Approach with CTP5)将所有DateTime值存储为数据库中的UTC?

或者是否有一种方法可以在映射中指定它,例如在last_login列的这一个中:

modelBuilder.Entity<User>().Property(x => x.Id).HasColumnName("id");
modelBuilder.Entity<User>().Property(x => x.IsAdmin).HasColumnName("admin");
modelBuilder.Entity<User>().Property(x => x.IsEnabled).HasColumnName("enabled");
modelBuilder.Entity<User>().Property(x => x.PasswordHash).HasColumnName("password_hash");
modelBuilder.Entity<User>().Property(x => x.LastLogin).HasColumnName("last_login");
Run Code Online (Sandbox Code Playgroud)

c# datetime entity-framework utc code-first

87
推荐指数
10
解决办法
5万
查看次数

81
推荐指数
3
解决办法
7万
查看次数

如何禁用代码首次迁移

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

migration entity-framework code-first

80
推荐指数
4
解决办法
8万
查看次数