Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可配置的表前缀是.Net还是/M?_.net_Orm - Fatal编程技术网

可配置的表前缀是.Net还是/M?

可配置的表前缀是.Net还是/M?,.net,orm,.net,Orm,在wiki、论坛或博客软件等web应用程序中,将数据存储在关系数据库中通常很有用。由于许多托管公司在其托管计划中提供单个数据库(额外的数据库需要额外的成本),因此当您的数据库对象(表、视图、约束和存储过程)具有公共前缀时,它对您的用户非常有用。对于意识到数据库稀缺性的应用程序来说,通常使用硬编码的表前缀。然而,我想要更多。具体来说,我希望有一个用户可以在web.config文件中指定的表前缀(当然,使用适当的默认值) 因为我讨厌手工编码操作,所以我更喜欢通过合格的OR/M进行工作,并且使用(并且

在wiki、论坛或博客软件等web应用程序中,将数据存储在关系数据库中通常很有用。由于许多托管公司在其托管计划中提供单个数据库(额外的数据库需要额外的成本),因此当您的数据库对象(表、视图、约束和存储过程)具有公共前缀时,它对您的用户非常有用。对于意识到数据库稀缺性的应用程序来说,通常使用硬编码的表前缀。然而,我想要更多。具体来说,我希望有一个用户可以在web.config文件中指定的表前缀(当然,使用适当的默认值)

因为我讨厌手工编码操作,所以我更喜欢通过合格的OR/M进行工作,并且使用(并且喜欢)LINQtoSQL、亚音速和ADO.Net。然而,在一个新项目中,当涉及到在用户的web.config文件中添加表前缀时,我遇到了一些麻烦。是否有任何基于.Net或/M的产品可以优雅地处理此场景

到目前为止,我所能想到的最好的方法是使用LINQ到SQL以及一个外部映射文件,我必须根据目前假设的web.config设置以某种方式更新该文件


谁有更好的解决方案?我试图在实体框架中实现它,但很快就变成了一团混乱。(可能是因为我不熟悉EF。)亚音速怎么样?除了在代码生成时应用表前缀之外,它还有其他选项吗?

允许您指定一个INamingStrategy,允许您在运行时动态解析表名。

而不是使用表前缀,而是让属于
架构的应用程序用户(在MS Sql 2005或更高版本中)

这意味着:

select * from dbo.clientAProduct
select * from dbo.clientBroduct
你有:

select * from clientA.Product
select * from clientB.Product

我现在已经研究了在实体框架和LINQtoSQL中实现这一点需要什么。它比这里的答案要长得多,所以我对答案的链接感到满意,而不是在这里重复它。这两种方法都相对复杂,但LINQ到SQL是更灵活的解决方案,也是最容易实现的