我在下面的代码中有问题.下面是我的型号代码
public class Comments
{
public string displayComments { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? dTime { get; set; }
public int airPortId { get; set; }
}
public class LstComments
{
private List<Comments> _lstcomment = new List<Comments>();
public List<Comments> lstCommet
{
get
{
return _lstcomment;
}
set
{
_lstcomment = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
并在mycontroller中从EF获取数据并将其添加到For循环中的属性.代码如下
Comments com = new Comments();
LstComments savedComments = new LstComments();
AirportEntities airPortEntity = new AirportEntities();
var userComments = from c in airPortEntity.AirportComments
select c;
//List<Comments> savedComments = new List<Comments>();
foreach (var item in userComments)
{
com.displayComments = item.Comments;
com.dTime = item.Time;
savedComments.lstCommet.Add(com);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我的整个列表正在更新相同的记录(最近添加的数据)
例如.foreach 3rd timn用第3项数据更新列表中的第1和第3第3项.
我做错了什么?
您Comments在循环外实例化.这意味着堆上有相同注释对象的一堆引用.你需要这样做
Comments com = new Comments(); 在foreach里面.这将在每次迭代时创建一个单独的实例,而不是仅为一个实例提供新值.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |