Tag: entity framework

如何使用entity frameworkselect单个列?

有没有办法使用Entity Framework 4获取单个列的全部内容? 像这样的SQL查询: SELECT Name FROM MyTable WHERE UserId = 1;

entity framework程序集中的重复types名称(6.1.0)

我不知道发生了什么,但是在做查询时,我不断收到以下exception。 “在程序集中复制types名称”。 我一直无法在网上find解决scheme。 我已经通过从解决scheme中的所有项目中移除entity framework并使用块重新安装来解决此问题。 然后突然间,exception又回来了。 我一遍又一遍地validation了我的表模式,发现没有错。 这是导致exception的查询。 var BaseQuery = from Users in db.Users join UserInstalls in db.UserTenantInstalls on Users.ID equals UserInstalls.UserID join Installs in db.TenantInstalls on UserInstalls.TenantInstallID equals Installs.ID where Users.Username == Username && Users.Password == Password && Installs.Name == Install select Users; var Query = BaseQuery.Include("UserTenantInstalls.TenantInstall"); return Query.FirstOrDefault(); 正如我前面提到的,同样的查询在以前工作。 数据没有改变,代码没有改变。

缺lessentity framework包含(lambda)扩展

EF OjbectSet.Include(a => a.parent)扩展名不可用。 我知道我可以添加代码来模仿它,但根据EntityFramework 4升级到5,lambda不可用,它应该是可用的。 我有using System.Data.Entity ,并在我的主要项目升级到EF 5。 查看程序集System.Data.Entity.dll,v4.0.0.0(C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ System.Data.Entity.dll)中的元数据。 … public ObjectQuery<System.Data.Common.DbDataRecord> GroupBy(string keys, string projection, params ObjectParameter[] parameters); public ObjectQuery<T> Include(string path); public ObjectQuery<T> Intersect(ObjectQuery<T> query); 这里没有关于Include的lambda变体的声明。 我已经检查,文件版本是4.0.30319.17929,根据数据库第一代entity framework5 System.Data.Entity与EntityFramework 。 该项目正在生成一个4.5程序集。 在相关的情况下,这个程序集中没有引用EntityFramework本身。 它只是有一些数据服务,所以它包含对System.Data.Entity和主数据层项目的引用。 有任何想法吗?

更新你的EDMX,以反映你的数据库(.net LINQ实体)

所以我有我的edmx。 然后我改变我的数据库一点点,改变一列从一个非空,以允许NULL。 我进入我的edmx,右键单击并select“从数据库更新模型” 现在我进入我的程序,它并没有实际更新…我不能把一个空列。 我需要做什么来正确地更新edmx? 谢谢。

从不同的机器构build代码第一个DbMigrator会导致错误

我们在SCM下有一个项目。 当我从我的机器构build它,并通过msdeploy发布到远程服务器,一切工作正常。 当我的同事用同一个项目尝试同样的事情时,刚刚从SCM中拉出来,在远程服务器entity framework上4.3.1 DbMigrator抛出: 自动迁移未应用,因为这会导致数据丢失。 事实certificate,初始发布到远程服务器的人似乎是“胜利者”。 如果我们把数据库放在远程服务器上,那么我的同事就可以发布,并且被locking。 我的出版物导致上述相同的错误。 DbMigrator的configuration如下所示: var dbMgConfig = new DbMigrationsConfiguration() { AutomaticMigrationsEnabled = true, //***DO NOT REMOVE THIS LINE, //DATA WILL BE LOST ON A BREAKING SCHEMA CHANGE, //TALK TO OTHER PARTIES INVOLVED IF THIS LINE IS CAUSING PROBLEMS AutomaticMigrationDataLossAllowed=false, //***DO NOT REMOVE THIS LINE, ContextType = typeof(TPSContext), MigrationsNamespace = […]

AsNoTracking()的全局设置?

原来我是这么认为的 context.Configuration.AutoDetectChangesEnabled = false; 将禁用更改跟踪。 但不是。 目前,我需要在我的所有LINQ查询(对于我的只读图层)上使用AsNoTracking() )。 是否有全局设置禁用DbContext的跟踪?

如何实现IDbContextFactory以用于Entity Framework数据迁移

我正在尝试使用Entity Framework数据迁移,如本文所述。 但是,当我尝试执行Enable-Migrations步骤时,我在包pipe理器控制台中收到以下错误: The target context 'MyDataContext' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory 所以,我创build了一个工厂类,在包含我的DbContext类的项目中实现了IDbContextFactory ,但是数据迁移看起来并不能识别它。 有什么我应该明确做的指示数据迁移使用这个工厂类?

内部.NET Framework数据提供程序错误1025

IQueryable<Organization> query = context.Organizations; Func<Reservation, bool> predicate = r => !r.IsDeleted; query.Select(o => new { Reservations = o.Reservations.Where(predicate) }).ToList(); 此查询会引发“内部.NET Framework数据提供程序错误1025”exception,但下面的查询不会。 query.Select(o => new { Reservations = o.Reservations.Where( r => !r.IsDeleted) }).ToList(); 我需要使用第一个,因为我需要检查一些if语句来构造正确的谓词。 我知道我不能在这种情况下使用if语句,这就是为什么我传递一个委托作为参数。 我怎样才能使第一个查询工作?

脚手架控制器不适用于Visual Studio 2013更新3和4

我无法在Visual Studio 2013(更新3和4)中搭build一个控制器(MVC5控制器与视图,使用entity framework)。 错误消息如下: 运行选定的代码生成器时发生错误: A configuration for type 'Library.Morthwind.Models.Catgeory' has already been added. To reference the existing configuration use the Entity<T>() or ComplexType<T>() methods 我已经从“Entity Framework Power Tools Beta 4”工具菜单中select“Reverse Engineer Code First”创build了模型。 任何想法可能会导致此错误?

LINQ中的`from..where`或`FirstOrDefault`

传统上,当我试图从数据库中获取用户的数据时,我使用了以下方法(在某种程度上): DbUsers curUser = context.DbUsers.FirstOrDefault(x => x.u_LoginName == id); string name = curUser.u_Name; string email = curUser.u_Email; 你可以看到我想要做的就是获取名称和电子邮件,但是在我看来,这个LINQ查询正在将所有的东西都存储在该用户的数据库中,然后将它带回来,然后让我得到我想要的。 我一直在做一些研究,并find了以下的select: var current = from s in context.DbUsers where s.u_LoginName == id select new { name = s.u_Name, email = s.u_Email }; foreach (var user in current) { //Stuff Here } 如果有的话,哪个更好? 当我只想检索几个结果/数据时,是否有一个更简单的方法?