微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC - 将数据库表动态绑定到 var

如何解决MVC - 将数据库表动态绑定到 var

我继承了一个设计糟糕的数据库,不得不将旧代码转换为 MVC & EF。 我希望能够从 SWITCH...CASE 中动态地将数据库表名分配给变量。 桌子设计完全一样,但不同的业务领域有不同的桌子! 我该怎么做呢?我可能错过了一些非常基本的东西! 我目前拥有的代码如下所示。

声明数据库

private CDBEntries db = new CDBEntries();

ActionResult 下面

var cmembs = db.XXXcmembs;

switch (returnValue.toupper())
{
    case "CRI":
        cmembs = db.YYYsmembs;
        break;
    default:
        break;
}
cSearchQuery = (from CCM in cmembs
                join CC in cDB on CCM.name equals CC.cname into CGroup
                from CC in CGroup.DefaultIfEmpty()
                select new CSearch()
                {
                    id = CCM.id,Name = CCM.name,Status = CCM.status,cid = CC.id
                });

实时代码中有更多连接,但为了简单起见,我将代码简化为基本代码

解决方法

不要认为您可以像那样使用 var。 Var 是强类型并在编译类型中声明。

var (C# reference)

隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器会确定类型

您也许可以使用 dynamic,这是在运行时推断的。

Walkthrough: Creating and Using Dynamic Objects

动态对象在运行时而不是在编译时公开属性和方法等成员。

如果您遇到困难,请告诉我,我会在今天晚些时候从我这边看看是否可行。

,

经过进一步研究,我意识到我想做的事与使用 EF 的原因(即编译时验证)背道而驰。 由于所有表格都具有相同的布局,我将把它们“合并”到 1 个表格中,并用一个额外的列来指定区域。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。