Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#ef映射实体_C#_Entity Framework - Fatal编程技术网

C#ef映射实体

C#ef映射实体,c#,entity-framework,C#,Entity Framework,我有3个实体: public class Category { public Category() { this.Companies = new Company(); this.Language = new Language(); } public string Id { get; set; } public string Name { get; set; } public string ParentId {

我有3个实体:

  public class Category
{
    public Category()
    {
        this.Companies = new Company();
        this.Language = new Language();
    }

    public string Id { get; set; }
    public string Name { get; set; }
    public string ParentId { get; set; }
    public int Sequence { get; set; }
    public string Company { get; set; }
    public virtual Company Companies { get; set; }
    public int CompanyId { get; set; }
    public virtual Language Language { get; set; }
    public string LanguageId { get; set; } 
 }

  public class Company
{
    public Company()
    {
        this.Categories = new List<Category>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}


     public class Language
{
    public Language()
    {
        this.Categories = new List<Category>();
    }

    public string Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}
我希望它能找到公司和语言,但它们总是一个新的对象


那怎么了?为什么它没有发现该公司与该实体有关联?

只是一个建议:你已经在他们之间建立了关系。你不需要使用。包括

var translatedCategory = ctx.Category.Where(x => x.Companies.Id == someID);

只是一个建议:你已经在他们之间建立了关系。你不需要使用。包括

var translatedCategory = ctx.Category.Where(x => x.Companies.Id == someID);

这行应该是this.HasKey(w=>new{w.Id,w.LanguageId,w.Company});CompanyId?是的,因为我使用了一个非常旧的数据库,其中的键是一个复合键,它不使用公司id,而是使用companyname,在该实体中称为just company。我将CompanyId添加到该表中,以便它可以将其作为外键从公司引用。这一行应该是this.HasKey(w=>new{w.Id,w.LanguageId,w.Company});CompanyId?是的,因为我使用了一个非常旧的数据库,其中的键是一个复合键,它不使用公司id,而是使用companyname,在该实体中称为just company。我将CompanyId添加到该表中,以便它可以将其作为外键从公司引用OK,但这对我没有帮助。我添加include是因为它们厄尔null@DanielGustafsson我只是补充了一个建议。至于这个问题,我会看看你在CategoryMap中建立关系的方式。他们没有很直观地说明如何正确地建立这种关系,但从表面上看,你正在建立一种多对多的关系,这种关系将有一个拥有多个catego的公司的类别好吧,但这对我没有帮助。我添加了include,因为它们在哪里null@DanielGustafsson我只是补充了一个建议。至于这个问题,我会看看你的关系在分类图中是如何建立的。他们并没有很直观地说明如何正确地建立这种关系,但从表面上看,你正在建立一种多对多的关系p将有一个类别,该类别包含一个具有多个类别的公司。
var translatedCategory = ctx.Category.Where(x => x.Companies.Id == someID);