Tag: entity framework 4

如何忽略EF 4.3迁移中的表/类

我正在测试EF 4.3(测试版) 我有一些新的类应该生成db表和列。 从一个旧项目我的架构中有一些旧表,我想通过EF访问。 声明所有类。 为了访问旧表,有一个映射的poco。 db迁移也尝试创建旧表。 如何设置此类/表不是迁移的一部分,而是ef模型的一部分? xxx.OnModelCreating() { modelBuilder.Ignore(); } 从模型中删除整个类。 最后我无法通过dbContext使用它进行访问。 我喜欢使用自动迁移。 我尽量避免将旧的db表完全迁移到EF类。 (是的,我知道有生成器)有120个表,旧的应用程序仍然使用它们。 一些仅与EF(新应用程序)一起使用的新表。 有3个常用的表格。 那些不应该创建,但可以通过ef访问。

无法将方法组“ToList”转换为非委托类型

我正在尝试编写一个生成多张发票的方法。 这是针对一所大学,客户在一个名为Enrollments的课程中注册了导师。 通过这种方法,我试图累积导师客户的月费乘以他们的佣金百分比,因为导师在他们提供的课程上获得一定的佣金。 这是我的代码: public ActionResult CreateBulkCommissions() { var month = DateTime.Now.ToString(“MMMM”); var enrolments = db.Enrollments.ToList(); var newCommissions = from enrolment in enrolments select new TutorCommission() { CommissionAmount = enrolment.MonthlyFee, CommissionMonth = month, // string constant CommissionStatus = “Unpaid”, Tutor = new Tutor { TutorNoID = enrolment.Tutor.TutorNoID, TutorCommissionPercentage = enrolment.Tutor.TutorCommissionPercentage } }; foreach (var newCommission […]

entity framework4中的左外连接太多了?

我有一个产品实体,它有0或1个“BestSeller”实体。 出于某种原因,当我说: db.Products.OrderBy(p => p.BestSeller.rating).ToList(); 我得到的SQL有一个“额外的”外连接(下图)。 如果我添加第二个0或1关系,并按两者排序,那么我得到4个外连接。 似乎每个这样的实体产生2个外连接而不是一个。 LINQ to SQL完全按照您的预期运行,没有额外的连接。 有没有其他人经历过这个,或者知道如何修复它? SELECT [Extent1].[id] AS [id], [Extent1].[ProductName] AS [ProductName] FROM [dbo].[Products] AS [Extent1] LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent2] ON [Extent1].[id] = [Extent2].[id] LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent3] ON [Extent2].[id] = [Extent3].[id] ORDER BY [Extent3].[rating] ASC

无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象

我已经阅读了一些与此特定错误消息有关的问题/答案,但我不太了解相应的解决方案。 我已多次读过你应该创建EF4上下文,使用它,然后处理它。 在我的应用程序中,我使用不同的上下文对象在这里和那里加载实体,然后最终想要将实体关联在一起。 我创建了一个简单的控制台应用程序,很容易导致错误。 图中显示了非常简单的模型,然后是代码。 如何让两个不同的实体共享相同的上下文? 我是否真的必须创建一个新的上下文,再次加载这两个实体(即使我已经拥有它们),只需关联它们并保存? 如果我只是错过了现有的,适当的问题/答案,请指出我正确的地方。 internal class Program { private static void Main(string[] args) { DeleteAllEntities(); CreateInitialEntities(); Owner o = LoadOwner(); Child c = LoadChild(); AssociateAndSave(o, c); } private static void AssociateAndSave(Owner o, Child c) { using (var context = new ModelEntities()) { // Exception occurs on the following line. o.Children.Add(c); context.Attach(o); […]

使用reflection从属性Name获取lambda表达式

我想让用户选择不同属性的搜索。 例如 [输入文本] | [选择选项{ID,NAME,PHONE}] | [搜索] 然后我会像这样构建我的查询: repository.Where(lambda-expression) 从所选选项{ID,NAME,PHONE}构建lambda表达式(例如:x => x.NAME.Equals(INPUT TEXT)) 有没有办法从Property属性名称构建lambda,也许使用reflection? 谢谢

在Entity Framework 4中调用用户定义的函数

我在SQL Server 2005数据库中有一个用户定义的函数,它返回一个位。 我想通过entity framework调用此函数。 我一直在寻找并没有太多运气。 在LINQ to SQL中,这很简单,我只是将函数添加到Data上下文模型中,我可以像这样调用它。 bool result = FooContext.UserDefinedFunction(someParameter); 使用entity framework,我已将该函数添加到我的模型中,它出现在模型浏览器中的SomeModel.Store \ Stored Procedures下。 该模型没有为该函数生成代码,.edmx文件的XML包含: 我能得到的最接近的是这样的: bool result = ObjectContext.ExecuteFunction( “UserDefinedFunction”, new ObjectParameter(“someParameter”, someParameter) ).First(); 但是我收到以下错误消息: 无法在容器’FooEntities’中找到FunctionImport’UserDefinedFunction’。 名称已被更改以保护无辜者。 tldr:如何使用Entity Framework 4.0调用标量值的用户定义函数?

如何在ADO.Net实体数据模型中为密码连接提供密码

我一直在关注如何创建OData服务的本教程。 http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx 并且它完美无瑕地工作……但是,在实体数据模型向导中,当它要求您“选择您的数据连接”时,它会向您发出此警告。 “此连接字符串似乎包含连接到数据库所需的敏感数据(例如,密码)。在连接字符串中存储敏感数据可能存在安全风险。是否要将此敏感数据包含在连接字符串中?” 如果我选择:“不,从连接字符串中排除敏感数据。我将在我的应用程序代码中设置它。” 我没有看到我能在哪里,“在我的应用程序代码中”插入密码。 (我公司将它们加密到注册表中) 另外,我需要连接多个数据库,具体取决于环境(Dev,CA或Prod),我需要知道连接字符串中引用了什么数据库才能获得正确的密码。 谢谢。

如何在entity framework代码中有多对多关联

我刚刚开始使用EF,我观看了一些很棒的教程video。 我坚持以下。 我有一个文件集合的类,我希望这些与事件和/或人有关 public class file{ public int id {get;set;} public string path {get;set;} } public event { public int id {get;set;} public string eventname {get;set} public virtual ICollection files {get;set;} public event(){ files = new list();} } public person { public int id {get;set;} public string name {get;set} public virtual ICollection files {get;set;} public […]

entity framework多个对象上下文

这个问题已经以50种不同的方式被问到了500个不同的时间……但是这里又一次,因为我似乎无法找到我正在寻找的答案: 我正在使用EF4和POCO代理。 答:我有一个从ObjectContext的一个实例获取的对象图。 该ObjectContext被释放。 B.我有一个从ObjectContext的另一个实例获取的对象。 ObjectContext也被处理掉了。 我想在A中使用B中的实体设置一堆相关的属性….类似于 foreach(var itemFromA in collectionFromA) { itemFromA.RelatedProperty = itemFromB; } 当我这样做时,我得到了例外: System.InvalidOperationException occurred Message=The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects. Source=System.Data.Entity StackTrace: at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedTarget, Boolean applyConstraints, Boolean addRelationshipAsUnchanged, Boolean relationshipAlreadyExists, Boolean allowModifyingOtherEndOfRelationship, Boolean forceForeignKeyChanges) at System.Data.Objects.DataClasses.RelatedEnd.Add(IEntityWrapper wrappedEntity, Boolean […]

LINQ to Entities group-by failure使用.date

我想在日期时间字段的日期部分做一个Linq组。 这个linq语句有效但按日期和时间分组。 var myQuery = from p in dbContext.Trends group p by p.UpdateDateTime into g select new { k = g.Key, ud = g.Max(p => p.Amount) }; 当我运行此语句仅按日期分组时,我得到以下错误 var myQuery = from p in dbContext.Trends group p by p.UpdateDateTime.Date into g //Added .Date on this line select new { k = g.Key, ud = g.Max(p […]