我正在尝试创建一些动态的
因为我不知道这些对象中不同属性的名称应该是什么,所以我不能像这样做:
让我解释一下我的情况:我希望从一个随机的数据库中获取数据(我不知道是哪个,但是根据从UI获得的信息建立连接字符串),因此我不知道需要获取什么数据。这可能是一个数据库表的示例:
TABLE Sale - ID: int, - Product: nvarchar(100), - Days: int, - QTY: bigint
这可能是另一个示例:
TABLE Foobar - Id: int, - Days: int, - QTY: bigint, - Product_Id: int, - Department_Id: int
正如您所看到的,我不知道数据库的样子(这是100%匿名的,因此需要100%动态),我想要返回的数据应该像一个构造良好的JSON一样。
或者,用另一个例子:
我已经尝试使用这些
有人有解决方案或者简单的指导结构,可以解决这种情况吗?
ExpandoObject
。我遇到了一个问题。因为我不知道这些对象中不同属性的名称应该是什么,所以我不能像这样做:
var list = new ArrayList();
var obj = new ExpandoObject();
obj.ID = 1,
obj.Product = "Pie",
obj.Days = 1,
obj.QTY = 65
list.Add(obj);
让我解释一下我的情况:我希望从一个随机的数据库中获取数据(我不知道是哪个,但是根据从UI获得的信息建立连接字符串),因此我不知道需要获取什么数据。这可能是一个数据库表的示例:
TABLE Sale - ID: int, - Product: nvarchar(100), - Days: int, - QTY: bigint
这可能是另一个示例:
TABLE Foobar - Id: int, - Days: int, - QTY: bigint, - Product_Id: int, - Department_Id: int
正如您所看到的,我不知道数据库的样子(这是100%匿名的,因此需要100%动态),我想要返回的数据应该像一个构造良好的JSON一样。
[
{
"ID": 1,
"Product": "Pie"
"Days": 1,
"QTY": 65
},
{
"ID": 2,
"Product": "Melons"
"Days": 5,
"QTY": 12
}
]
或者,用另一个例子:
[
{
"ID": 1,
"Days": 2,
"QTY": 56,
"Product_Id": 5,
"Department_Id": 2
}
{
"ID": 2,
"Days": 6,
"QTY": 12,
"Product_Id": 2,
"Department_Id": 5
}
]
我已经尝试使用这些
ExpandoObject
,但似乎无法使其工作,因为我无法像本问题顶部所示的那样做(我不知道属性的名称)。是否有一种方法可以让我说出类似以下的话:var obj = new ExpandoObject();
var propName = "Product";
var obj.propName = "Pie"
Console.WriteLine("Let's print!: " + obj.Product);
//OUTPUT
Let's print!: Pie
有人有解决方案或者简单的指导结构,可以解决这种情况吗?
List<Dictionary<string, object>>
。如果你使用 Json.NET 将其序列化为 JSON,你将得到你想要的结果。 - dbcExpandoObject
:) - Patrick Hofman