列表<;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> </td>
<td style="vertical-align: top; text-align:left;">
<b>Description:</b><br /><%#:Item.Description %>
<br />
<span><b>F_in:</b> <%#: String.Format("{0:d}", Item.F_in) %></span>
<span><b>F_out:</b> <%#: String.Format("{0:d}", Item.F_out) %></span>
<br />
<span><b>Attribute Number:</b> <%#:Item.AttributeID %></span>
<br />
<span><b>R1 Relations: </b> <%#: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},
}
这可能不是您期望的答案,但可能是一种变通方法。更改此项:
<span><b>R1 Relations: </b> <%#:Item.R1 %></span>
到此:
<span><b>R1 Relations: </b> <%#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成员