相关疑难解决方法(0)

多个添加的实体可能在数据库种子上具有相同的主键

假设我使用实体框架6为asp.net mvc 5应用程序提供了以下模型结构

class Athlete {
 int AthleteID {get; set;}
 List<YearsAsAthlete> YearsAsAthlete {get;set;}
}

class YearsAsAthlete {
 int YearsAsAthleteID {get;set;}
 int AthleteID {get;set;}
 [ForeignKey("AthleteID")]
 Athlete Athlete {get;set;}
 List<ContractRevenue> ContractRevenue {get;set;}
 List<AdvertisementRevenue> AdvertisementRevenue {get;set;}
}

class ContractRevenue {
 int ContractRevenueID {get;set;}
 int YearsAsAthleteID {get;set;}
 [ForeignKey("YearsAsAthleteID")]
 YearsAsAthlete YearsAsAthlete {get;set;}

 List<RevenueAmounts> RevenueAmounts {get;set;}
}

class AdvertisementRevenue {get;set;}
 int AdvertisementRevenueID {get;set;}
 int YearsAsAthleteID {get;set;}
 [ForeignKey("YearsAsAthleteID")]
 YearsAsAthlete YearsAsAthlete {get;set;}

 List<RevenueAmounts> RevenueAmounts {get;set;}
}

class RevenueAmounts {
 int RevenueAmountsID {get;set;}
 int AmountPaid {get;set;}
 date DateOfPayment {get;set;} …
Run Code Online (Sandbox Code Playgroud)

c# mysql asp.net-mvc entity-framework

6
推荐指数
1
解决办法
1万
查看次数

无法确定保存订单 - EF6的关系的主要结束

我正在添加EF6并尝试重新创建遗留数据库的模型.我也在制作WCF Web服务.有太多的字段,所以我最小化了示例以更好地查明问题.

我正在尝试将一些数据输入到订单的数据库中.订单包括OrderLines,每个OrderLine都可以拥有许可证.OrderLine在极少数情况下是一对多,所以我必须做一对多.如果一个OrderLine和许可证用于零件,则下一个OrderLine和许可证用于该零件的维护.部件许可证必须链接到维护许可证.

在此输入图像描述

ParentLicenceId是个问题.在我的旧数据库中,一个许可证与另一个部件类型维护许可证之间存在关系.因此,如果客户购买第X部分,他们可能需要为部分X维修1年.因此,部分X维护许可证将列出部分X许可证作为其父部分.

using OrderExample;
using System;
using System.Collections.Generic;

namespace OrderExampleCmd
{
    class Program
    {
        static void Main()
        {
            var omc = new OrderExampleEntities();
            var order = new Order
            {
                OrderNumber = new Guid().ToString(),
                OrderLines = new List<OrderLine>()
            };
            // Maitenance
            var orderLine1 = new OrderLine
            {
                OrderLineNumber = 1,
                Licenses = new List<License>()
            };
            var orderLine1License = new License
            {
                LicenseType = "Maintenance"
            };
            orderLine1.Licenses.Add(orderLine1License);

            // Part
            var orderLine2 = new OrderLine
            {
                OrderLineNumber = 2,
                Licenses = …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

5
推荐指数
1
解决办法
5609
查看次数

不使用导航属性添加相关实体

我有以下类,设置为测试:

public class Company
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Employee
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Name { get; set; }

    public int CompanyId { get; set; }
    public virtual Company Company { get; set; }
}

public class EFTestDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }
    public DbSet<Company> Companies { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

为了测试,我想通过单个SaveChanges调用为该公司插入一个公司和一个员工,如下所示:

Company company …
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework

3
推荐指数
1
解决办法
130
查看次数

标签 统计

c# ×3

entity-framework ×3

asp.net-mvc ×1

mysql ×1

sql ×1