Tag: entity framework

使用struct而不是class的EntityFramework SqlQuery因ArgumentException而失败

我正在研究一个EntityFramework应用程序,当使用struct而不是Database.SqlQuery的类时,我遇到了一个问题。 结构看起来像这样: internal struct Column { public int object_id { get; set; } public string name { get; set; } } 并且对SqlQuery的调用如下所示: using (var db = new DbContext(“ConnectionString”)) { var columns = db.Database.SqlQuery(query); DoSomething(columns.ToList()); // Exception thrown here } 我得到一个ArgumentException,当Column是一个struct时,消息“类型’MyService.Column’的表达式不能用于返回类型’System.Object’”。 我把它改成了一个类,它工作正常。 我很高兴在这里使用一个类,但我想知道为什么结构在以这种方式使用时会失败。

“当IDENTITY_INSERT设置为OFF时,无法在表’电影’中为标识列插入显式值。”

我首先使用代码entity framework。 我一直在收到以下错误,无法弄清楚如何修复它: “当IDENTITY_INSERT设置为OFF时,无法在表’电影’中为标识列插入显式值。” 我已经读过在我的迁移查询周围设置Sql(“SET IDENTITY_INSERT Movies ON”)和OFF应修复此问题,但是我没有在Movies表上运行任何查询。 电影表: { public class Movies { public byte Id { get; set; } [Display (Name = “Movie Name”)] public string MovieName { get; set; } public Genre Genre { get; set; } [Required] public byte GenreId { get; set; } [Display (Name = “Release Date”)] public DateTime […]

如何在Entity Framework中使用’In’SQL关键字?

这是我的SQL命令 SELECT KEY,NAME from COMPANY c WHERE KEY IN (select KEY from USER_COMPANY where UserId = @UserId) order by NAME asc 所以我想将其转换为Entity Framework。 我试试这个 var userCompany = (from u in db.USER_COMPANY where u.UserId == UserId select(u.KEY)); var user = (from c in db.COMPANY where (c => userCompany.Contains(c.KEY) select c); 但它不起作用。 如何在Entity Framework中使用SQL IN关键字?

在LINQ查询中动态设置表名

我正在研究数据仓库应用程序,我们有4个表,其中模式是相同的。 这些表之间的区别仅在于表名。 表格示例: ps_Contractor ps_Employee ps_Union ps_NonUnion 架构 ID 每小时 效益 总 现在我需要根据这些表生成4个报告。 我没有编写4个单独的LINQ查询,而是想编写单个查询,我可以动态地传递表名。 问题如何在以下LINQ查询中动态传递表名? var data = ( from q in _dbcontext.ps_Contractor join _l in _dbcontext.log on q.id equals l.tablelogid where q.hourly = 8 select new{ hourly=q.hourly, benefit=q.benefit, total=q.total, log = l.message }.ToList(); 我已经查看了堆栈溢出建议的所有类似问题。 我不想使用ExecuteStoreQuery。 我有什么选择?

如何根据数据库第一种方法(.edmx)的父删除自动删除子项?

以下是我的2级分享1对多关系: public partial class Employee { public int Id { get; set; } public string Name { get; set; } public virtual ICollection Skills { get; set; } } public partial class Skills { public int Id { get; set; } public Nullable EmployeeId { get; set; } public string Skills { get; set; } […]

针对IEnumerable 过滤IEnumerable

我有一个具有属性StockNumber的对象Style 。 我想根据用户在搜索中输入的IEnumerable stockNumbers过滤所有Db.Styles的列表。 DB.Styles是一个IEnumerable 。 这基本上是我想要做的: public IEnumerable LoadListOfStyles(IEnumerable stockNumbers) { return Db.Styles.Intersect(stockNumbers); // Need to filter Db.Styles based on stockNumbers } 那么有没有一种简单的方法可以将Db.Styles中所有样式的列表与Db.Styles中的搜索值进行stockNumbers以返回仅用户搜索过的Styles的筛选列表? 我看到能够做到这一点的唯一方法是让2个IEnumerable对象相交,但是从搜索的库存号中逐个加载样式似乎是很多不必要的代码。 我想知道是否有更简单的方法。 或者我是否需要使用自己的方法来过滤结果?

如何以一对一/零关系指定外键?

我有一个父实体和一个子实体。 在DB中,父级的主键是p_p_id ,子级中的外键是相同的p_p_id 数据库中没有外键约束。 实体具有在各自的类中相互指向的属性。 家长class public virtual ChildProject ThisChildProject { get; set; } 儿童class public virtual ParentProject ThisParentProjection { get; set; } 这些属性上没有注释,也没有任何类的ID。 在配置中,我试图在孩子中进行映射。 HasRequired(i => i.ThisParentProject).WithOptional(o => o.ThisChildProject ); EF会尝试使用子键的主键和父键的主键进行映射。 但是我想在子节点中使用已定义的FK和父节点的主键

Enity Framework覆盖标识列

我有一个Code First EF类,如下所示: public class Event { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; } /* snip */ } 我想要发生的是当ID属性为null或0时,数据库将为其生成ID值,但是如果我显式设置此值为newEvent.ID=10000000 ,它将使用它作为ID列,当前正在执行这将导致下一个可用的ID。

如何正确实现其他实体对Identity用户的引用?

我正在使用具有自己上下文的Identity。 public class ApplicationUser : IdentityUser { // some custom fields } public class IdentityContext : IdentityDbContext { //… } 我也有一些像这样的其他实体 public class Comment{ public int Id {get;set;} public string Message{get;set;} public DateTime Time{get;set;} } 这是我的其他背景使用的 public class MyContext :DbContext { public DbSet Comments { get; set; } //… other DbSets } 题。 我希望我的评论实体有作者属性,所以我会有类似的东西 public […]

如何更改Entity Framework为Datetime生成SQL精度的方式

我有一个表使用id和DateTime列是pk,但当我尝试按entity framework更新数据时,如下所示: using (Entities context = new Entities()) { var item = (from item in context.BatchData where item.Id == 2 select item ).FirstOrDefault(); item.Title = “EF6TEST”; context.SaveChanges(); } 我收到一个错误 存储更新,插入或删除语句会影响意外的行数(0)。 记录SQL后,我知道原因。 SQL看起来像这样 ‘update [dbo].[BatchData] set [BatchData_Title] = @0 where (([BatchData_Id] = @1) and ([BatchData_CreatedDateTime] = @2)) select [BatchData_Rowversion] from [dbo].[BatchData]BatchUploadData where @@ROWCOUNT > 0 and […]