Tag: entity framework

EF:使用延迟加载的必需属性时,validation失败

鉴于这个非常简单的模型: public class MyContext : BaseContext { public DbSet<Foo> Foos { get; set; } public DbSet<Bar> Bars { get; set; } } public class Foo { public int Id { get; set; } public int Data { get; set; } [Required] public virtual Bar Bar { get; set; } } public class Bar { public […]

如何在代码中使用视图第一个entity framework

我怎样才能在entity framework代码中使用数据库视图,

什么时候应该在创build1000个Entity Framework对象时调用SaveChanges()? (如在import时)

我运行的每次运行都会有1000个logging。 只是在我的假设上寻找一些确认: 哪一个最有意义: 运行SaveChanges()每个AddToClassName()调用。 每n次AddToClassName()调用运行SaveChanges() 。 在所有的AddToClassName()调用之后运行SaveChanges() 。 第一个选项可能是慢的吧? 由于需要分析内存中的EF对象,生成SQL等 我假设第二个选项是两个世界中最好的,因为我们可以围绕SaveChanges()调用进行try catch,并且一次只丢失n个logging,如果其中一个失败的话。 也许将每个批次存储在List <>中。 如果SaveChanges()调用成功,则删除列表。 如果失败,请logging项目。 最后一个选项可能最终会很慢,因为每个EF对象都必须在内存中,直到调用SaveChanges() 。 如果保存失败,什么都不会发生,对吧?

是否有可能与entity framework运行本机SQL?

我试图search一个表中的XML字段,这是不支持与EF。 如果不使用纯Ado.net,可以使用EF进行本地SQL支持?

添加新的实体标量时,entity framework4映射片段错误

我有一个entity framework4模型优先的devise。 我在devise师中创build了我的模型的初稿,一切都很好。 我编译,生成数据库等 后来我试图给我现有的一个实体添加一个string标量(Nullable = true),当我编译时,我总是收到这种types的错误: 错误3004:从第569行开始映射片段时出现问题:没有为属性MyEntity.MyValue在Set MyEntities中指定映射。 具有密钥(PK)的实体在下列情况下不会往返:实体types为[MyEntities.MyEntity] 我一直不得不手动打开EDMX文件,并纠正XML添加标量。 想法是怎么回事?

如何更新多行使用LINQ到SQL?

表: id userid friendid name status 1 1 2 venkat false 2 1 3 sai true 3 1 4 arun false 4 1 5 arjun false 如果用户发送userid = 1,那么friendids = 2,4,5 status = true 请告诉我如何更新以上所有friendids状态的查询是真实的。 [2,3,4一次]。 谢谢

如何在Microsoft.AspNet.Identity.EntityFramework.IdentityUser中更改id的types

(ASP.NET MVC 5,EF6,VS2013) 我试图找出如何更改types的string中的“Id”字段的types为int : Microsoft.AspNet.Identity.EntityFramework.IdentityUser 为了让新的用户帐户与一个整数ID而不是一个GUID相关联。 但是,似乎这将比在我的派生用户类中简单地添加一个带有inttypes的新的Id属性更为复杂。 看看这个方法签名: (从程序集Microsoft.AspNet.Identity.Core.dll) public class UserManager<TUser> : IDisposable where TUser : global::Microsoft.AspNet.Identity.IUser { … public virtual Task<IdentityResult> AddLoginAsync(string userId, UserLoginInfo login); … } 所以,似乎还有其他的方法被烘焙到ASP.NET身份框架中,要求userId是一个string。 我是否还需要重新实现这些类? 解释为什么我不想在用户表中存储ID的GUID: – 将有其他表格通过外键将数据与用户表相关联。 (当用户在网站上保存内容。)我没有理由使用更大的字段types,并花费额外的数据库空间没有明显的优势。 (我知道还有其他一些关于使用GUID和int ID的post,但是似乎很多人认为int id更快,占用空间更less,这仍然让我感到疑惑。 我计划公开一个平静的端点,允许用户检索有关特定用户的数据。 我认为: /users/123/name 比…更清洁 /users/{af54c891-69ba-4ddf-8cb6-00d368e58d77}/name 有谁知道为什么ASP.NET团队决定以这种方式实现ID? 我试图将其更改为inttypes,目光短浅吗? (也许我错过了好处。) 谢谢… -ben

在C#中以stringforms获取类的名称

有没有办法获得一个类名并将其转换为C#中的string? 作为entity framework的一部分,.Include方法需要在执行查询时join点分隔的string列表。 我有我想要join的类模型,由于重构和将来代码维护的原因,我希望能够在引用此类时具有编译时安全性。 因此,我有办法做到这一点: class Foo { } tblBar.Include ( Foo.GetType().ToString() ); 我不认为我可以做没有实例的GetType()。 有任何想法吗?

entity framework迁移中必填字段的默认值?

我在ASP.NET MVC应用程序中添加了[Required]数据注释。 创build迁移后,运行update-database resuilts,出现以下错误: 无法将值NULL插入到'Director'列中,'MOVIES_cf7bad808fa94f89afa2e5dae1161e78.dbo.Movies'; 列不允许空值。 更新失败。 该语句已终止。 这是由于一些logging在其Director列中有NULL。 我该如何自动将这些值改变为默认值(如“John Doe”)导演? 这是我的模型: public class Movie { public int ID { get; set; } [Required] public string Title { get; set; } [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } [Required] public string Genre { get; set; } [Range(1,100)] [DataType(DataType.Currency)] public decimal Price { get; set; […]

DbQuery.Include()的重载去哪里需要一个lambda?

我刚刚为一个使用EntityFramework的新项目声明了一些代码优先模型。 public class BlogEntry { public long Id { get; set; } public long AuthorId { get; set; } public DateTime PublishedStamp { get; set; } public string Title { get; set; } public string Text { get; set; } public virtual User Author { get; set; } } public class User { public long […]