Tag: entity framework

MVC5 EF实体显然正在保存,但在检索时为null

我有一个Account类,其中包含Payments清单,其中包含Pending , Sold或Refunded的Products列表。 选择要付费的Products ,我可以将它们添加到Payment对象中,然后将整个对象保存到Account 。 但是,当我在Pay操作中检索帐户时, Account.Payments为空。 这是AddProduct操作: public ActionResult AddProduct(List products) { //var acc = Account.FetchAccountFromIdentity(User.Identity.GetUserName()); var username = User.Identity.GetUserName(); var acc = db.Accounts.First(u => u.EmailAddress == username); var payment = new Payment(); foreach (var product in products) { if (product.IsSelected) { var tempProduct = db.Products.Find(product.ProductID); payment.Products.Add(tempProduct); payment.PaymentStatus = enPaymentStatus.Pending; payment.Gross += tempProduct.Price; […]

如何使用Entity Framework Code First将C#int映射到SqlServer tinyint?

我有一个POCO模型类和一个现有的数据库表, 我都无法改变,我正在使用Entity Framework 6和Fluent API。 模型类的CountryId为’int’。 但是,在数据库表中,CtryId是’tinyint’。 我尝试使用设置类型 modelBuilder.Entity().Property(e => e.CountryId).HasColumnName(“CtryId”).HasColumnType(“tinyint”); 在OnModelCreating方法中,但得到以下错误: error 2019: Member Mapping specified is not valid. The type ‘Edm.Int32[Nullable=False,DefaultValue=]’ of member ‘CountryId’ in type ‘RA.Data.Event’ is not compatible with ‘SqlServer.tinyint[Nullable=False,DefaultValue=]’ of member ‘CtryId’ in type ‘CodeFirstDatabaseSchema.Event’. 如何使用Entity Framework Code First将C#int映射到SqlServer tinyint?

是否可以将IQueryable 映射到IQueryable ?

这是Automapper专业人士的问题。 我已经尝试了几天的查询映射 – 并且没有运气。 似乎Automapper并不打算以我想要的方式使用它。 但也许我错了。 所以这是问题…… 我有这样的课程: CatDto(名称,年龄,玩具(ToyDto对象的集合)) ToyDto(CatName,ToyName,Cat(父CatDto对象)) Cat(来自Entity Framework,具有与CatDto类似的属性) 玩具(来自entity framework,具有与ToyDto类似的属性) 我想在我的数据访问层中编写一个通用的读取函数,如下所示: IEnumerable Read(IQueryable query) { // here “query” is converted // to Entity Framework query by means of AutoMapper, // EF query gets executed, // I convert EF entities (Cat) back to CatDto – this is not essential // result is […]

无法将System.Linq.IQueryable 类型隐式转换为字符串

我有两个名为Rank和CrewMembers的表。我想根据CrewMember的id获取Rank表中存在的rank的名称。我已经将crewId作为参数传递,并且在此基础上该方法将返回该特定船员的等级。这就是我的代码是 – public string GetRank(int CrewId) { string rank = (from r1 in context.Rank join r2 in context.CrewMember on r1.RankId equals r2.RankId where r2.CrewId == CrewId select r1.RankName); return rank; } 当我构建代码时,我得到以下错误 – 无法将System.Linq.IQueryable类型隐式转换为字符串 我哪里错了?

EF4两个型号一个数据库,可能吗?

我一直在寻找这个答案,似乎找不到任何东西,但是对于EF4,我想创建一个基础模型并放入我们的“基础”和我们创建的任何新项目,如果我们需要向该站点db添加自定义表是否可以添加一个只有那些特定表格的模型并将其链接到我们的“基础”中的模型我似乎无法在这样的事情上找到一个好的资源,这似乎就像它是正常的有一个可重复使用的基础模型和一个单独的一个用于任何一个off 感谢您的帮助或指点!

entity framework5:代码优先的周期性关系问题

我理解为什么EF不允许PK / FK关系中的“循环引用”。 我正在寻找有关如何更改模型以使以下方案有效的建议。 脚本 三个实体: Employee , Agency , WorkRecord 。 他们的目的是记录员工上class时间。 然后, Employee包含他/她所雇用的Agency的参考,并且他/她的工作WorkRecord包含对工作所完成的Agency的参考。 public class Employee { [Key] public int Id { get; set; } public string Name { get; set; } public int AgencyId { get; set; } public virtual Agency Agency { get; set; } public virtual IEnumerable WorkRecords { get; […]

如何在从上下文中分离对象时删除EF6中的对象列表

好的我可以删除EF6中的单个项目,如下所示: public void DeleteUserGroup(MY_GROUPS ug) { using (var context = new MYConn()) { var entry = context.Entry(ug); if (entry.State == EntityState.Detached) { context.MY_GROUPS.Attach(ug); } context.MY_GROUPS.Remove(ug); context.SaveChanges(); } } 如果此方法从单个MY_GROUPS实例MY_GROUPS为List我将如何处理删除? 是否有一种更有效的方法,然后只做一个foreach并一次设置一个状态? 更新 :我已经使用了类似的方法,使用RemoveRange方法。 但是我收到一个错误: 无法删除该对象,因为在ObjectStateManager中找不到该对象。 我正在寻找将对象列表附加到上下文的最佳方法,以便我可以删除它们。

LINQ to SQL查询在结果中具有错误的值

我有一个LINQ查询具有不正确的结果,但是当我分析生成的SQL时,SQL结果是正确的。 ApplicationsEntities context = new ApplicationsEntities(); var query = from documentation in context.Documnetations where documentation.Application_Version_ID == app_ver_id orderby documentation.Name select documentation; docs = query.ToList(); 我得到两个重复:“如何安装Office 2003”和“如何安装Office 2003” 下面是配置文件SQL的输出: 从生成的SQL中分配结果会发生什么?

entity framework多对多关系表创建“向后”

我遇到了EF6和多对多关系的问题。 我有以下设置: public class Foo { public int Id { get; set; } public virtual ICollection Bars { get; set; } public virtual ICollection SubBars { get; set; } public Foo() { Bars = new HashSet(); SubBars = new HashSet(); } } public class Bar { public int Id { get; set; } public virtual […]

如何删除Entity Framework 6中的多对多关系

如果将数据库中的项目连接成多对多关系,我会遇到问题 我的数据库看起来像 | [Project] | | [Job] | ============= ================== ========= | ProjectID | | JobInProjectID | | JobID | | | | ProjectID | | | | | | JobID | | | Project和Job表中的主键也被设置为其他表中的外键但我认为这不是问题,因为当我从Job表中删除项时,它被正确删除,其他表中的所有相关项 所有外键都是通过约束设置的,并且在更新级联上是删除级联 我用来删除工作项的代码 Job job = await db.Jobs.FindAsync(id); db.Entry(job).State = EntityState.Deleted; await db.SaveChangesAsync(); 和项目: Project project = await db.Projects.FindAsync(id); db.Entry(project).State = […]