1

私はスタックオーバーフローでここにいくつかの類似の問題に遭遇しましたが、それらは結合されたテーブルに深く入っているようには見えず、私のコードに適用されるものを見ることができなかったので、誰かが私のコードビットを見てくれることを願っていますなぜ私が得ているのか教えてください

指定された型メンバー 'Locale_Section' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。

        private object SetNavItems(string Category, byte CultureID)
    {
        using (var db = new Compleate())
        {
            return (from n in db.Navigation
                    where n.Category == Category && n.Section.Locale_Section.CultureID == CultureID
                    orderby n.Position
                    select new
                    {
                        n.Section.Locale_Section.Title,
                        n.Section.LinkAddress
                    }).ToList();
        }
    }

ナビゲーション.cs

    [Table("Navigation")]
public class Navigation
{
    [Key, Required, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int NavigationID { get; set; }

    [Required, MaxLength(16), Column(TypeName = "varchar")]
    public string Category { get; set; }

    [Required]
    public Int16 SectionID { get; set; }

    [ForeignKey("SectionID")]
    public virtual Section Section { get; set; }

    [Required]
    public byte Position { get; set; }
}

Ssection.cs

    [Table("Section")]
public class Section
{
    [Key, Required, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Int16 SectionID { get; set; }

    public Int64 LogoFileID { get; set; }

    [ForeignKey("LogoFileID")]
    public virtual File File { get; set; }

    [Required, MaxLength(15), Column(TypeName = "varchar")]
    public string RouteName { get; set; }

    [Required, MaxLength(15), Column(TypeName = "varchar")]
    public string Type { get; set; }

    [NotMapped]
    public string LinkAddress
    {
        get
        {
            return Type + "/" + RouteName;
        }
    }

    [NotMapped]
    public virtual Locale_Section Locale_Section { get; set; }
}

Locale_Section.cs

    [Table("Locale_Section")]
public class Locale_Section
{
    [Key, Required, Column(Order = 0)]
    public Int16 SectionID { get; set; }

    [ForeignKey("SectionID")]
    public virtual Section Section { get; set; }

    [Key, Required, Column(Order = 1)]
    public byte CultureID { get; set; }

    [ForeignKey("CultureID")]
    public virtual Culture Culture { get; set; }

    [Required, MaxLength(250)]
    public string Title { get; set; }

    public string Synopsis { get; set; }
}
4

1 に答える 1

1

エンティティのSection_Localeプロパティをとしてマークしました。これは、プロパティがマッピングに対して不明であり、Linq-to-Entities クエリで SQL に変換できないことを意味します。そのプロパティをマッピングするか、すべてのインスタンスをアプリケーションにロードするか、たとえば、または最初に呼び出すことなしに、そのプロパティを使用することはできません (これはおそらくかなり悪い解決策です)。SectionNotMappedNavigationToListAsEnumerable

于 2013-03-01T08:25:22.103 に答える