执行Linq查询时未找到模型属性

时间:2013-11-13 16:11:53

标签: c# asp.net asp.net-mvc-4

我在尝试从SQL服务器数据库获取模型的属性时遇到问题。我已经在我的模型上定义了属性,但是当我执行Linq查询时,它不会让我获得该属性。

这是我的模特:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web.Mvc;

namespace ProgramaAlimenticio.Models
{
    public class RutaMD
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public virtual int pk_ruta { get; set; }

        [Display(Name = "Ruta")]
        public virtual string nombre { get; set; }

        [Display(Name = "Proveedor")]
        public virtual Nullable<int> fk_proveedor { get; set; }

        [Display(Name = "Programa")]
        public virtual int fk_programa { get; set; }
    }

    [MetadataType(typeof(RutaMD))]
    public partial class Ruta {  }
}

不可用的属性是fk_programa。

当我进行下一个查询时,问题就出现了:

var programas = from r in db.Ruta
                join p in db.Programa on r.fk_programa equals p.pk_programa
                into o
                select o;

1 个答案:

答案 0 :(得分:0)

假设db.Ruta中有Ruta项,而不是RutaMD项,那么您的Ruta类似乎没有fk_programa属性在它上面。

[MetadataType(typeof(RutaMD))]
public partial class Ruta {  }

也许这个属性应该在部分类的另一半中:你是否仔细检查过它实际上在那里?它是公开的吗?那个名字是一样的吗?它有get之三? get之处是公开的吗?