Questions tagged «ef-code-first»

EF Code-First是将Microsoft的Entity Framework与POCO类一起使用的一种方式,与模型优先或DB-first相对。

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

10
如何从头开始删除和重新创建现有的EF Code First数据库
我在VS 2012中将EF Code First和EF 5一起使用。我使用PMupdate-database命令,并且我有一个简单的种子方法来用示例数据填充某些表。 我想删除并重新创建我的x.mdb。更新历史记录似乎不同步。如果我在上下文中注释掉所有的DBSet,则update-database运行不会出现错误,但会将某些表保留在DB中。由于数据库中没有有价值的数据,因此重置所有内容似乎是最简单的。 我该怎么做?


7
EF Code First中的计算列
我需要数据库中的一列由数据库计算为(行总和)-(行总和b)。我正在使用代码优先模型来创建数据库。 这是我的意思: public class Income { [Key] public int UserID { get; set; } public double inSum { get; set; } } public class Outcome { [Key] public int UserID { get; set; } public double outSum { get; set; } } public class FirstTable { [Key] public int UserID …

2
EF代码优先:如何获取随机行
如何建立查询以检索随机行? 如果我要用SQL编写它,那么我将对newid()进行排序,并从顶部砍掉n行。无论如何要先在EF代码中执行此操作? 我尝试创建使用newid()的查询并使用DbSet.SqlQuery()执行它。虽然有效,但并不是最干净的解决方案。 另外,尝试检索所有行并按新的GUID对它们进行排序。尽管行数很小,但是它仍然不是一个好的解决方案。 有任何想法吗?

7
使用Entity Framework Fluent API一对一的可选关系
我们想使用Entity Framework Code First使用一对一的可选关系。我们有两个实体。 public class PIIUser { public int Id { get; set; } public int? LoyaltyUserDetailId { get; set; } public LoyaltyUserDetail LoyaltyUserDetail { get; set; } } public class LoyaltyUserDetail { public int Id { get; set; } public double? AvailablePoints { get; set; } public int …

4
EF包括其他实体(通用存储库模式)
我在Entity Framework Code First之上使用通用存储库模式。一切工作正常,直到我需要在查询中包含更多实体。我必须成功包含一个实体,但是现在我不知道如何包含多个实体。看看到目前为止我得到了什么: public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class { var entityName = GetEntityName<TEntity>(); return _objectContext.CreateQuery<TEntity>(entityName); } public IList<TEntity> GetQueryWithInclude<TEntity>(string toInclude) where TEntity : class { var entityName = GetEntityName<TEntity>(); return _objectContext.CreateQuery<TEntity>(entityName).Include(toInclude).ToList(); } private string GetEntityName<TEntity>() where TEntity : class { return string.Format("{0}.{1}", _objectContext.DefaultContainerName, _pluralizer.Pluralize(typeof(TEntity).Name)); } 我试图做但没用的是将字符串数组传递给函数,然后尝试将“包含”附加到查询顶部。我想知道如果我一次调用GetQueryWithInclude并传递一个实体名称(实际上是一个导航属性)来聚合查询结果该怎么办,但是我担心这可能会在每次调用时重复查询结果...您认为什么是使它正常工作的最佳方法? 提前致谢! …


3
如何禁用EF代码优先的链接表的级联删除?
我想使用实体框架代码优先的链接表禁用级联删除。例如,如果许多用户具有许多角色,而我尝试删除一个角色,则除非当前没有与该角色相关联的用户,否则我希望该删除被阻止。我已经删除了我的级联删除约定OnModelCreating: protected override void OnModelCreating(DbModelBuilder modelBuilder) { ... modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 然后,我设置了用户角色链接表: modelBuilder.Entity<User>() .HasMany(usr => usr.Roles) .WithMany(role => role.Users) .Map(m => { m.ToTable("UsersRoles"); m.MapLeftKey("UserId"); m.MapRightKey("RoleId"); }); 但是,当EF创建数据库时,它会为外键关系创建一个删除级联,例如。 ALTER TABLE [dbo].[UsersRoles] WITH CHECK ADD CONSTRAINT [FK_dbo.UsersRoles_dbo.User_UserId] FOREIGN KEY([UserId]) REFERENCES [dbo].[User] ([UserId]) ON DELETE CASCADE GO ALTER TABLE [dbo].[UsersRoles] WITH CHECK ADD CONSTRAINT [FK_dbo.UsersRoles_dbo.Role_RoleId] …

5
是否应该使用实体框架4.1和MVC3启用或禁用动态代理?
有人可以提供一些建议或指出一些博客/文章来帮助做出这一决定吗?代理对我来说似乎很陌生,我不愿意使用它们。我喜欢通过在模型中使用虚拟属性来控制延迟加载的功能,但这几乎是我可以看到的所有好处。我的应用程序是一个简单的MVC Web应用程序,当实体经历更改状态时,我不需要为上下文绑定任何挂钩。 无论如何,这是我目前优缺点非常有限的清单,请让我知道我是否在这方面不满意。 优点 在“保存”或“更新”上,我可以无缝地应用“更改” 延迟加载配置非常容易。 缺点 对于我的实体,以前从未使用过代理,这是一种方法上的变化,对我自己和团队成员而言似乎不舒服。 难以调试。 如果我要序列化/反序列化,则需要额外的代码 在“保存”或“更新”上,代理必须与从上下文中检索到的对象相同。
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.