Tag: entity framework

在EF6中将匿名类型转换为IEnumerable

我正在使用Entity Framework开发MVC应用程序。 我想从表中获取5列并以IEnumerable类型返回它们。 我的代码是: IEnumerable n = new List(); n = db.MSTs.Select(x => new { x.Id, x.Code, x.Desc, x.L1, x.L2 }).OrderBy(h => h.Code).ToList(); 但它给了我错误 无法将类型’System.Collection.Generic.List ‘隐式转换为’System.Collection.Generic.IEnumerable <> ‘ 我该如何解决?

entity framework5 POCO – 创建和管理关系

我正在使用EF5,POCO数据库的第一种方法。 假设我需要创建一个新客户和一个新订单: – var customer = new Customer(); var order = new Order(); order.Customer = customer; order.CustomerId = customer.Id; customer.Orders.Add(order); 我真的必须包括最后三行来建立关系吗? 这里需要指出的是,我正在内存中创建实体层次结构,并且可能需要长时间操作它,直到用户点击“保存”。 令我困惑的是创建几个新Customer对象的想法。 每个将结束ID为0(在被保持之前)。 我的代码中有很多地方可以使用Order的CustomerId属性执行某些操作。 如果有几个新客户(ID 0),那么我该如何获得正确的客户? 或者我应该总是使用Order.Customer而不是Order.CustomerId (在这种情况下,在上面的代码中摆脱ID分配是否安全)?

EF中朋友列表最简单的方法是什么?

我想创建一个简单的朋友列表,每行有两个id(用户ID和朋友ID),两者都引用相应用户配置文件中的“id”字段 | relationId |用户id | friendId | 如果双方向彼此发送友谊请求,则用户成为朋友。 例如: | 1 | 2 | 4 | | 1 | 4 | 2 | // ID为2和4的用户是朋友 到目前为止,设置外键对我来说很容易。 当我必须在同一个表中设置两个外键时,事情变得更加困难。 我得到了不同的错误,我希望修复,然后重新调整我的代码,最后我觉得我太复杂了。 UserProfile模型: [Table(“UserProfile”)] public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; } public string Email { get; […]

不能使用’System.Data.Entity.Core.Objects.ObjectQuery类型的实例调用

我想通过userId查找用户名 这段代码片段正常工作 Discussion_CreateBy = db.AspNetUsers.Find(discussion.CreatedBy).UserName, 这曾经不适用于以下控制器类 Comment_CreateBy = db.AspNetUsers.Find(c.CreatedBy).UserName, 这是我的模特课 public class DiscussionVM { public int Disussion_ID { get; set; } public string Discussion_Title { get; set; } public string Discussion_Description { get; set; } public Nullable Discussion_CreateDate { get; set; } public string Discussion_CreateBy { get; set; } public string Comment_User { get; set; […]

aspnet核心entity framework7自引用“作业”1到多表

我有一个包含工作的“工作”表。 事实上乔布斯并不总是一气呵成……你可以找到一份有很多访问的工作。 我打算将其表示为另一项工作,但通过自引用linkId链接回原始工作。 我无法使用流畅的API代表这一点。 它是一对多关系..一个工作可能有很多访问,因此一些linkId指向原始工作。 链接ID将返回原始作业ID。 它也是可选的,因为大多数工作可能一次性完成.. 我已经找到了这个,但很难将其他例子变成这个例子,因为很多它们是一对一的,而且那些给出一对多例子的例子似乎是使用不同的EF6。 我的工作表是: using System; namespace JobsLedger.Model.Entities { public class Job : IEntityBase { public int Id { get; set; } public string Model { get; set; } public string Serial { get; set; } public string ProblemDetails { get; set; } public string SolutionDetails { get; set; } […]

在SQL Azure上调用exec sp并使用EF6抛出时,存储过程正常工作

我有这个存储过程 CREATE PROCEDURE [dbo].[sp_RebuildIndexes] AS BEGIN DECLARE @TableName varchar(255) DECLARE TableCursor CURSOR FOR (SELECT ‘[‘ + IST.TABLE_SCHEMA + ‘].[‘ + IST.table_name + ‘]’ AS [TableName] FROM INFORMATION_SCHEMA.TABLES IST WHERE IST.TABLE_TYPE = ‘BASE TABLE’) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@fetch_status = 0 BEGIN PRINT (‘Rebuilding Indexes on ‘ + @TableName) BEGIN TRY […]

获取所有模型类型

如何获取属于模型的实体类型列表,以便我可以测试模型实际上是否与该实体类型一起使用? var dcx = new MyDbContext(); var lst = new List(); //populate the list here somehow //… foreach (var t in lst) { var set = dcx.Set(t); //I’m trying to avoid an exception here try { var test = set.FirstOrDefault(); } catch (Exception ex) { Console.WriteLine(“{0} has an error”, t); } } 注意:即使DbSet上没有相应的DbSet属性,也完全可以查询dcx.Set(t) ; 因此,通过reflection迭代MyDbContext的属性是MyDbContext其返回类型的generics定义是DbSet或甚至IDbSet […]

代码优先迁移过程:我错过了哪个部分?

我的步骤: 1)使用查询在SSMS中创建我的数据库 /* Execute in SQL Server Management Studio prior to building data model(s) */ CREATE DATABASE snakedb; GO USE snakedb; /* Create table of scores of games played. Every game will have a score recorded, but there will only be a corresponding name if the user enters one */ CREATE TABLE Scores ( id […]

在EF Code First中对两个相同的表使用相同的类型

我有两个表,User和TempUsers,我需要对它们进行操作。 我已经定义了我的用户类型,我想将它添加到两个表的DbContext中。 问题是,它使用约定将类型名称映射到表或使用指定了表名的TableAttribute。 无论哪种方式,我都看不到如何添加两个dbset将类型映射到不同的表名。 我可以使用copy + paste或UserBase类以及两个派生的User和TempUser类来复制类型。 两种方式都可以工作,但实际上我想要处理用户的代码,而不是代码中的用户和TempUsers的复杂性。 毕竟,存储库负责任地处理放置用户对象的位置,业务逻辑不应该处理它。 建议将不胜感激。 谢谢! [基于评论的解释] 我有两个表的原因是因为TempUsers支持批量导入/更新,但通过每个用户的primefaces事务。 因此,外部某些活动目录导出或某些此类操作将导致为每个用户调用服务。 我必须创建/更新用户并找出哪些用户没有被导入但已经存在于我的数据库中然后删除它们。 截断Users表并直接写入更简单,但Id会有所不同,它会破坏用户对不同表的所有链接,例如运送历史记录。

entity framework反向工程代码优先:在生成的代码中缺少外键关系

我尝试使用EF Reverse Engineer Code First从数据库生成代码, 但是,自动生成的代码错过了一些外键关系。 可能是什么原因?