草庐IT

Entity-Framework

全部标签

c# - Entity Framework 为关联对象创建新的/重复的条目

我正在尝试使用CodeFirst创建一个SQLCE4数据库。运行下面的示例代码时,EntityFramework每次都会为产品插入新记录,即使数据完全相同。我需要做什么才能使EntityFramework不创建重复的关联产品?ForeignID1和Product对象中的值是数据库中已存在的值,但EntityFramework正在删除我提供的ID它并添加一个新的ID。namespaceMyApp.Model{publicclassMyThing{publicintID{get;set;}[ForeignKey("Product")]publicintForeignID1{get;set;

c# - .Net Identity 中 UserManager 的奇怪行为

为了让这个问题简单化,我将描述更高层次的问题,然后在需要时讨论任何实现细节。我在开发中的应用程序中使用ASP.NET标识。在一系列请求的特定场景中,UserManager首先获取当前用户(至少一个FindById请求),从中获取用户。在后续请求中,我更新了由U​​serManager.Update保存的关于该用户的信息,我可以看到数据库中保存的更改。这里的问题是,在进一步的后续请求中,从FindById获取的用户对象没有更新。这很奇怪,但可能与我不明白的UserManager中的缓存有关。但是,当我跟踪数据库调用时,我发现UserManager确实正在向数据库发送sql请求以获取用户。

c# - 具有 Entity Framework 的动态表名

我有许多具有相同模型结构但具有其他表名和其他数据的表(在这种情况下将是~100个表)。我想使用EntityFramework在运行时动态切换表名(例如从路由中获取名称表)。数据库中的表是由其他脚本动态添加和删除的。有没有一种方法可以像这样具有良好的性能?db.Table("TableName").Where(x=>x.ID==ID) 最佳答案 你想这样做吗?foreach(stringtableNameinnew[]{"Table1","Table2"}){varresult=dbContext.Database.SqlQuery(

c# - 如果不支持包含,如何在 LINQ to Entities( Entity Framework )中执行 SQL 样式 'IN' 语句?

我正在使用LINQtoEntities(不是LINQtoSQL),但在创建“IN”样式查询时遇到了问题。这是我目前的查询:varitems=db.InventoryItem.Include("Kind").Include("PropertyValues").Include("PropertyValues.KindProperty").Where(itm=>valueIds.Contains(itm.ID)).ToList();然而,当我这样做时,会抛出以下异常:LINQtoEntitiesdoesnotrecognizethemethod'BooleanContains(Int64)'

使用 HashSet(pluralsight 代码)的假数据库上下文的 C# 单元测试(新 Q)

简短版:在此视频中,ScottAllen先生explainshowtotestacontroller.但是他没有展示类的完整代码:FakeDbContext。有没有人可以帮我完成它?他在“测试Controller”视频的06分15分展示了类(class)。长版在学校,我有一门选修课,我们学习C#。我的考试项目是一个使用MVC3的ASP站点。为了快速学习,我看过PluralSight的视频。我的问题是关于thisvideo中的一些代码他解释了如何测试Controller。所以我试过:我制作了一个具有简单索引方法的Controller:publicclassRound1Controller

c# - EF 4 - 没有代理的延迟加载

我读到当我们需要使用延迟加载和更改跟踪时会使用代理。换句话说,要使用延迟加载,我必须启用代理。到目前为止一切顺利。关键是我可以使用下面的代码来设置上下文以不使用代理甚至使用延迟加载。ctx=newSchoolEntities();ctx.ContextOptions.ProxyCreationEnabled=false;ctx.ContextOptions.LazyLoadingEnabled=true;ProxyCreationEnabled属性是否仅与更改跟踪代理相关,还是我遗漏了什么?有人可以详细解释一下吗?谢谢!编辑1我没有使用POCO/DbContext。我使用带有Objec

c# - Entity Framework 5 - 无法加载文件或程序集 EntityFramework,版本 = 5.0.0.0

我正在尝试为我的项目使用EntityFramework5,但我似乎在安装程序集以使其符合要求时遇到了一些问题。由于我最初是使用nuget安装的,所以我不确定我需要做什么才能使它按预期工作。请问我需要做什么来解决这个问题?*System.IO.FileNotFoundException:无法加载文件或程序集EntityFramework,Version=5.0.0.0,Culture=Neutral,PublicKeyToken=b77a5c561934e089'或其依赖项之一系统找不到指定的文件。警告:程序集绑定(bind)日志记录已关闭。要启用程序集绑定(bind)失败日志记录,请设

c# - 使用 LINQ for Entity Framework 将实体转换为通用方法中的已实现接口(interface)

我有一个通用方法来查询EF中TEntity类型的对象。如果TEntity实现特定接口(interface),我想将条件添加为where子句。我的方法是:publicTEntityGetByUserID(GuiduserID){varquery=this.DbSet;if(typeof(TEntity).IsImplementationOf()){query=query.Where((x=>!((IDeletableEntity)x).IsDeleted);}returnquery.FirstOrDefault(x=>x.UserID==userID);}IsImplementation

c# - 在 Code First 的情况下使用 MetadataType 强制执行验证是否有意义?

我似乎理解了将MetadataTypeAttribute帮助到AddValidationtotheModel背后的原因如果是DatabaseFirst因为我们希望避免下次从数据库生成模型时覆盖更改。我注意到很少有人使用MetadataType定义验证,即使他们使用CodeFirst也是如此。方法,并且它们的实体类不可能被某种自动生成的代码覆盖。不直接将这些DataAnnotations应用于实际的实体类,而是将它们分成部分类定义,然后使用MetadataType进行链接是否有意义,即使在使用CodeFirst时也是如此定义实体模型的方法?publicclassMyEntity{[Req

c# - MS Entity Framework VS NHibernate 及其派生贡献(FluentNHibernate、Linq for NHibernate)

我刚读到这个article关于EntityFramework4(实际上是版本2)。EntityFramework似乎比它的第一个版本有了巨大的改进。因此,我从来没有在任何项目中使用过EF,因为我认为EF与NHibernate相比还不够成熟。NHibernate及其当前的贡献FluentNHibernate和LinqforNHibernatebyAyendeRahien我的感觉是,当NHibernate的第二个版本问世时,Microsoft只是想重新获得它在支持NHibernate时失去的领域。不过,我担心的是以下几点(排名不分先后):EF4是否会减少XML的冗长程度?EF4是否与SQL