我正在尝试使用Entity Framework将2D int数组保存在数据库中。但是这种方式不起作用:
public int[,] Board { get; set; } = new int[,]
{
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,1,2,0,0,0},
{0,0,0,2,1,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
};
有什么想法可以实现这一目标吗?
答案 0 :(得分:0)
板(双动力)阵列的常规表示形式为
public class Column
{
public int BoardID { get; set; }
public int ID { get; set; }
public List<Row> Rows { get; set; }
}
public class Row
{
public int BoardID { get; set; }
public int ColumnID { get; set; }
public int ID { get; set; }
public object Value { get; set; }
}
public class Board
{
public int ID { get; set; }
public List<Column> Columns { get; set; }
}
实体框架与实体集一起使用,因此通常您希望将概念“分解”为实体驱动的方法。请注意,在这种情况下,您将需要三个表,而不仅仅是原始数组的X,Y表示。
从这里开始,您只需
dbContext.BOARD_TABLE.Add(myBoardInstance);
dbContext.SaveChanges();
由于Board-Column 1-N和Column-Row 1-N的关系,您的电路板实例(包括子列和行)将保存到DB。