TableName.RowName在MVC中检索Nothing

时间:2014-04-11 12:35:23

标签: asp.net-mvc linq entity-framework asp.net-mvc-4

我有一个名为" KelimeTuru"的模型类。设计如下:

public partial class KelimeTuru
    {
        public int Id { get; set; }
        public int KelimeId { get; set; }
        public int MenseiId { get; set; }
        public int TurId { get; set; }
        public int AnlamTurleriId { get; set; }
        public int SozlukTuruId { get; set; }
        public Nullable<int> SesId { get; set; }
        public Nullable<int> VideoId { get; set; }
        public Nullable<int> ResimId { get; set; }
        public Nullable<int> SembolId { get; set; }
        public Nullable<int> BirimId { get; set; }
        public Nullable<int> SimgeId { get; set; }
        public string Anlam { get; set; }
        public string Transkript { get; set; }

        public virtual AnlamTurleri AnlamTurleri { get; set; }
        public virtual Birim Birim { get; set; }
        public virtual Kelime Kelime { get; set; }
        public virtual Mensei Mensei { get; set; }
        public virtual Sembol Sembol { get; set; }
        public virtual Ses Ses { get; set; }
        public virtual Simge Simge { get; set; }
        public virtual SozlukTuru SozlukTuru { get; set; }
        public virtual Turler Turler { get; set; }
        public virtual Video Video { get; set; }
        public virtual Resim Resim { get; set; }
    }

如果我们正确使用记录的 Id ,它会检索所需的数据:

 public ActionResult Details(int id=0)
        {
            SozlukEntities db = new SozlukEntities();
            KelimeTuru kelime = db.KelimeTuru.Find(id);

            if (kelime == null)
            {
                return HttpNotFound();
            }
            return View(kelime);
        }

我想根据他们的&#34; KelimeId&#34;而不是&#34; Id&#34; s取代单词&#34; id&#34;与&#34; KelimeId&#34;在我的代码中。但得到了#34; 404.0 - 未找到&#34;错误。 你可以帮我找回&#34; KelimeTuru&#34;表使用KelimeId?

2 个答案:

答案 0 :(得分:2)

听起来你想要这样的东西:

KelimeTuru kelime = db.KelimeTuru.Where(x => x.KelimeId == id).SingleOrDefault();

答案 1 :(得分:2)

试试这个:

KelimeTuru kelime = db.KelimeTuru.SingleOrDefault(x => x.KelimeId == id);

查找方法仅适用于主键属性,表示如果您的属性使用[Key]属性进行修饰,则Find()将能够查找记录,否则将无法获取记录。