实体框架:动态列和动态对象属性

时间:2018-10-06 20:07:40

标签: c# asp.net asp.net-mvc entity-framework entity-framework-6

通常,在使用实体框架时,我会使用;

List<students> students = db.Students.ToList();

就我而言;我正在使用SQL Server数据库,但不允许对其进行任何更改。 (这包括创建自己的SP和功能)

在此数据库中,存在一个视图,该视图以branch_1_stock,branch_2_stock ... branch_x_stock的格式保存每个商店分支的产品库存数量。每当用户创建另一个分支(在branchs表中创建)时,所述视图都会更新自身,现在包括另一个列,例如branch_3_stock,其中数字是分支表中分支记录的索引号。

那么,由于列名是由数据库本身动态创建的,而我却无法控制它,我将如何去获取每个分支的产品库存量或所有具有库存量的产品的清单?

  • 我曾尝试创建一个ExpandoObject,但在将其应用于我的逻辑时遇到了问题
  • 我曾尝试对数据库执行sql命令字符串,但它本身有缺点,例如创建单独的连接字符串,我也未能将结果强制转换为某种对象。

我所能想到的就是遍历分支表,获取每个分支的索引和名称,然后在循环中使用普通的sql字符串构建,这样我就可以将列名设置为“ branch_” + i +“ _stock”以查询数据库。但这需要具有动态特性的对象吗?有什么办法可以对此提供强类型的解决方案?

如果有经验的程序员看到了这一点,那么解决问题的正确方法是什么?

谢谢。

0 个答案:

没有答案