列表<;int>;作为实体模型类数据成员+won';t显示

本文关键字:+won 数据成员 显示 int lt gt 列表 实体模型 | 更新日期: 2023-09-27 17:59:17

我有一个Azure数据库的实体类模型。我希望其中一个数据成员是List或类似的成员。本质上,我希望能够在实体中存储可变数量的int。到目前为止,它进行了编译,但没有显示列表信息。这可能吗?有没有更好的方法将可变大小的容器存储在实体类模型中?

我的实体类

public class Attribute
{
    [ScaffoldColumn(false)]
    public int AttributeID { get; set; }
    [Required, StringLength(100), Display(Name = "Name")]
    public string AttributeName { get; set; }
    [Required, StringLength(10000), Display(Name = "Attribute Description"), DataType(DataType.MultilineText)]
    public string Description { get; set; }
    public string ImagePath { get; set; }
    [Display(Name = "F_in")]
    public int F_in { get; set; }
    [Display(Name = "F_out")]
    public int F_out { get; set; }
    [Display(Name = "F_sum")]
    public int F_sum { get; set; }
    public int? CategoryID { get; set; }
    public string CategoryName { get; set; }
    public virtual Category Category { get; set; }
    public List<int> R1 { get; set; }
}

我的标记

<asp:FormView ID="AttributeDetail" runat="server" ItemType="Trojan.Models.Attribute" SelectMethod ="GetAttribute" RenderOuterTable="false">
    <ItemTemplate>
        <div>
            <h1><%#:Item.AttributeName %></h1>
        </div>
        <br />
        <table>
            <tr>
                <td>
                    <img src="/Catalog/Images/<%#:Item.ImagePath %>" style="border:solid; height:300px" alt="<%#:Item.AttributeName %>"/>
                </td>
                <td>&nbsp;</td>  
                <td style="vertical-align: top; text-align:left;">
                    <b>Description:</b><br /><%#:Item.Description %>
                    <br />
                    <span><b>F_in:</b>&nbsp;<%#: String.Format("{0:d}", Item.F_in) %></span>
                    <span><b>F_out:</b>&nbsp;<%#: String.Format("{0:d}", Item.F_out) %></span>
                    <br />
                    <span><b>Attribute Number:</b>&nbsp;<%#:Item.AttributeID %></span>
                    <br />
                    <span><b>R1 Relations: </b>&nbsp;<%#:Item.R1 %></span>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:FormView>

后面的我的代码

public partial class AttributeDetails : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public IQueryable<Trojan.Models.Attribute> GetAttribute(
                        [QueryString("AttributeID")] int? AttributeId,
                        [RouteData] string AttributeName)
    {
        var _db = new Trojan.Models.AttributeContext();
        IQueryable<Trojan.Models.Attribute> query = _db.Attributes;
        if (AttributeId.HasValue && AttributeId > 0)
        {
            query = query.Where(p => p.AttributeID == AttributeId);
        }
        else if (!String.IsNullOrEmpty(AttributeName))
        {
            query = query.Where(p =>
                      String.Compare(p.AttributeName, AttributeName) == 0);
        }
        else
        {
            query = null;
        }
        return query;
    }
}

编辑

我忘了在设置列表的地方添加数据库初始化程序

private static List<Attribute> GetAttributes()
    {
        var Attributes = new List<Attribute> {
            new Attribute
            {
                AttributeID = 1,
                AttributeName = "Specification",
                Description = "Insertion",
                ImagePath="one.png",
                F_in = 0,
                F_out = 3,
                CategoryID = 1,
                CategoryName = "Chip Life Cycle",
                R1 = new List<int> {2},
    }

列表<;int>;作为实体模型类数据成员+won';t显示

这可能不是您期望的答案,但可能是一种变通方法。更改此项:

<span><b>R1 Relations: </b>&nbsp;<%#:Item.R1 %></span>

到此:

<span><b>R1 Relations: </b>&nbsp;<%#GetList(:Item.R1) %></span>

在后面的代码中,添加以下内容:

string delimeter = ",";
var item = items.Select(a => a.ToString()).ToList();
Console.WriteLine(item.Aggregate((i, j) => i.ToString() + delimeter + j.ToString()));

我真的不知道特洛伊木马。模型。属性(以及其中的语法)。但是,正如你所看到的,逻辑很简单。您只需将其转换为字符串,然后将其显示给listView成员