C#EF向模型添加数据

C#EF向模型添加数据,c#,entity-framework,C#,Entity Framework,我有那些模型 class Artist { public int Id { get; set; } [StringLength(500)] public string Name { get; set; } [StringLength(50)] public string LastName { get; set; } public virtual ICollection<SimilarArtist> SimilarArtists { g

我有那些模型

class Artist
{
    public int Id { get; set; }
    [StringLength(500)]
    public string Name { get; set; }
    [StringLength(50)]
    public string LastName { get; set; }

    public virtual ICollection<SimilarArtist> SimilarArtists { get; set; }   
}

class SimilarArtist
{
    public int Id { get; set; }
    public int ArtistId { get; set; }
    [ForeignKey("ArtistId")]
    public Artist Artist { get; set; }
    public int Similar_Artist_Id { get; set; }
}
因此,当我选择模型时,它会返回

var similar = _db.Artists.FirstOrDefault(x => x.Name == id).SimilarArtists.FirstOrDefault();

//similar.ArtistId 
//similar.Id
//similar.Similar_Artist_Id
//similar.Artist //the object which return main artist 
问题是,我如何才能在同一请求中输入“var simple”,不仅输入similor\u Artist\u Id,还输入name和lastname(而不必输入similor\u Artist\u Id的请求)

或者只是:

similar.Artist.Name
或者,如果希望能够具有强类型属性,例如
类似.ArtistName
,请创建
[NotMapped]
getter属性

class SimilarArtist
{
    public int Id { get; set; }
    public int ArtistId { get; set; }
    [ForeignKey("ArtistId")]
    public Artist Artist { get; set; }
    public int Similar_Artist_Id { get; set; }
    [NotMapped]
    public string ArtistName 
    {
       get 
       {
           return this.Artist.Name;            
       }
    }
}
你能行

var similar = _db.Artists.Where(x => x.Name == id)
              .Select(a => a.SimilarArtists.FirstOrDefault())
              .FirstOrDefault();

这将为您提供与谓词
x.Name==id

1)匹配的第一批
艺术家的第一批
类似艺术家(及其所有属性)。当然我能做到,但这不是一个点2)相似。Artist.Name返回主艺术家名称,基于[ForeignKey(“ArtistId”)]的每个5Artist对象都是相同的,它返回我一直拥有的信息->主艺术家,但我需要基于相似的艺术家Id的对象。这就是问题所在。
class SimilarArtist
{
    public int Id { get; set; }
    public int ArtistId { get; set; }
    [ForeignKey("ArtistId")]
    public Artist Artist { get; set; }
    public int Similar_Artist_Id { get; set; }
    [NotMapped]
    public string ArtistName 
    {
       get 
       {
           return this.Artist.Name;            
       }
    }
}
var similar = _db.Artists.Where(x => x.Name == id)
              .Select(a => a.SimilarArtists.FirstOrDefault())
              .FirstOrDefault();