Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 我的asp:gridview可以';不显示IQueryable结果中的对象_Asp.net_.net_Entity Framework_Gridview_Dbcontext - Fatal编程技术网

Asp.net 我的asp:gridview可以';不显示IQueryable结果中的对象

Asp.net 我的asp:gridview可以';不显示IQueryable结果中的对象,asp.net,.net,entity-framework,gridview,dbcontext,Asp.net,.net,Entity Framework,Gridview,Dbcontext,情景: platform: Visual studio 2012, framework: .net framework 4.5 问题: 我的asp:GridView有问题。当我尝试从IQueryable结果中获取数据时,只返回原语类型。基本类型显示在gridview中,而不是CitizenModel中的object SpecieModel和ObjectRole 你知道会发生什么吗 我有下面的公民模型课 [Browsable(false)] [Key

情景:

         platform: Visual studio 2012,

         framework: .net framework 4.5
问题:

我的asp:GridView有问题。当我尝试从IQueryable结果中获取数据时,只返回原语类型。基本类型显示在gridview中,而不是CitizenModel中的object SpecieModel和ObjectRole

你知道会发生什么吗

我有下面的公民模型课

[Browsable(false)]
    [Key]
    public int Id { get; set; }

    [Browsable(true)]
    [Required(ErrorMessage = "The name field is required")]
    public string Name { get; set; }

    [Browsable(true)]
    [Required(ErrorMessage = "The specie field is required")]
    public SpecieModel SpecieType { get; set; }

    [Browsable(true)]
    public RoleModel ObjectRole { get; set; }

    [NotMapped]
    public int Specie
    {
        get
        {
            if (this.SpecieType != null)
                return this.SpecieType.Id;
            else
                return 0;
        }
    }

    [NotMapped]
    public int Role
    {
        get
        {
            if (this.ObjectRole != null)
                return this.SpecieType.Id;
            else
                return 0;
        }
    }
我的背景

public class ImperialDBContext :DbContext
{
    public ImperialDBContext()
        : base("DBImperial11")
    {
    }

    //protected override void OnModelCreating(DbModelBuilder modelBuilder)
    //{
    //    // other code 
    //    Database.SetInitializer<ImperialDBContext>(null);
    //    // more code
    //}

    public DbSet<CitizenModel> Citizens { get; set; }

    public DbSet<RoleModel> Roles { get; set; }

    public DbSet<LogErroModel> LogErros { get; set; }
公共类ImperialDBContext:DbContext { 公共ImperialDBContext() :base(“DBImperial11”) { } //模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder) //{ ////其他代码 //Database.SetInitializer(null); ////更多代码 //} 公共数据库集公民{get;set;} 公共数据库集角色{get;set;} 公共DbSet LogErros{get;set;} }

我的asp gridview:

<asp:GridView ID="gridDados" runat="server" ItemType="Imperial.Class.Entidade.CitizenModel" SelectMethod="CarregarGrid" DataKeyNames="Id" OnRowCommand="gridDados_RowCommand">
    <Columns>
        <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Excluir" OnClientClick="return confirm('Deseja excluir ?')" CommandArgument='<%#: Item.Id %>' Text="Excluir"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Editar" CommandArgument='<%#: Item.Id %>' Text="Editar"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>

    </Columns>
</asp:GridView>

我的方法来自gridview的carregarGrid

public IQueryable<CitizenModel> CarregarGrid()
    {
        try
        {
            return ImperialFacade.Instancia.LoadCitizenDatas();
        }
        catch (Exception ex)
        {
            ImperialFacade.Instancia.InserirLogErro(new LogErroModel(ex.Message));
            throw ex;
        }
    }
public IQueryable CarregarGrid()
{
尝试
{
返回ImperialFacade.Instancia.LoadCitizenDatas();
}
捕获(例外情况除外)
{
ImperialFacade.Instancia.InserirLogErro(新LogErroModel(例如Message));
掷骰子;
}
}
在我的门面上:

public IQueryable<CitizenModel> LoadCitizenDatas()
    {
        try
        {
            return new CitizenNegocio().LoadDatas();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
public IQueryable LoadCitizenDatas()
{
尝试
{
返回新的CitizenNegocio().LoadDatas();
}
捕获(例外情况除外)
{
抛出新异常(例如消息);
}
}

LoadCitizenDatas是如何实现的?我用LoadCitizenDatas的实现编辑了这篇文章。它是否显示角色和种类属性?否,只有基本属性Id和名称