0

エラーがあります:

One or more validation errors were detected during model generation:

\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'DynamicMenu' has no key defined.    Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'ambt_Dynamic_Menu' is based on type 'DynamicMenu' that has no keys defined.

ヘルパークラスのコードは次のとおりです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Data.Models;
using Data;

namespace Ambermoda.Web
{
    public class MenuHelper
    {
        public static List<DynamicMenu> GetMenu()
        {
            DataContext db = new DataContext();
            List<DynamicMenu> list = db.ambt_Dynamic_Menu.ToList();

            return list;
        }
    }
}

だから私はそれを解決する方法がわかりません。(私の意見では)このエラーを生成できるものをすべてチェックしましたが、結果はありませんでした。

私は同様の投稿をしていますが、どれも私の問題を解決しません。

誰かが何か考えを持っているなら、それを書いてください:)

ありがとう!

いくつかのコード

DynamicMenu.cs

    [Table("abmt_Dynamic_Menu")]
    public class DynamicMenu
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int dmn_id { get; set; }
        public string dmn_code { get; set; }
        public string dnm_parent_code { get; set; }
        public string dnm_title { get; set; }
        public string dnm_title_en { get; set; }
        public int dnm_order { get; set; }
    }

DataContext.cs

public class DataContext : DbContext
{
    public DataContext() { }

    public DbSet<DynamicMenu> ambt_Dynamic_Menu { get; set; }
}

接続文字列:

<add name="DataContext" providerName="System.Data.SqlClient" connectionString="Data Source=Mikasasa-lap\Mikasasa;Database=Ambermoda;Integrated Security=True;Pooling=False;"/>
4

3 に答える 3

2

あなたが提供したソースコードによると、Code First アプローチを使用しています。
CFは、命名規則により、クラスには「Id」という名前のプロパティが必要であると想定し、このプロパティは主キーとして扱われます。

それ以外の場合は、属性 [Key] または流暢な API を使用して手動で主キーを宣言する必要があります ( EntityTypeConfiguration.HasKeyメソッドを参照)。

于 2012-05-22T10:37:18.077 に答える
1

データベースの主キーであるフィールドを通知する必要があります。Keyこれを行うには、属性を使用します。

[Table("abmt_Dynamic_Menu")]
public class DynamicMenu
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int dmn_id { get; set; }
    public string dmn_code { get; set; }
    public string dnm_parent_code { get; set; }
    public string dnm_title { get; set; }
    public string dnm_title_en { get; set; }
    public int dnm_order { get; set; }
}
于 2012-05-22T10:38:21.010 に答える
0

DynamicMenu テーブルに主キーがあるかどうかを確認します

于 2012-05-22T10:32:24.227 に答える