小编Law*_*ker的帖子

具有实体框架的子查询

我正在将子系统从NHibernate移植到Entity Framework,并希望看到将以下查询移植到EF的最佳方法.

var date = DateTime.Now; // It can be any day
AccountBalanceByDate abbd = null;
var lastBalanceDateByAccountQuery = QueryOver.Of<AccountBalanceByDate>()
    .Where(x => x.AccountId == abbd.AccountId && x.Date < date)
    .Select(Projections.Max<AccountBalanceByDate>(x => x.Date));

var lastBalances = session.QueryOver<AccountBalanceByDate>(() => abbd)
    .WithSubquery.WhereProperty(x => x.Date).Eq(lastBalanceDateByAccountQuery)
    .List();
Run Code Online (Sandbox Code Playgroud)

帐户余额类是:

public class AccountBalanceByDate
{
    public virtual int Id { get; set; }
    public virtual int AccountId { get; set; }
    public virtual DateTime Date { get; set; }
    public virtual decimal …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server nhibernate entity-framework

11
推荐指数
1
解决办法
3万
查看次数

如何使用Nhibernate 3.2按代码映射添加过滤器定义?

ModelInspector似乎没有提供定义过滤器定义的方法.任何想法/解决方法?

我需要通过代码生成以下映射:

<filter-def name="filterName" use-many-to-one="false">
  <filter-param name="filterParamName" type="Int32"/>
</filter-def>
Run Code Online (Sandbox Code Playgroud)

c# nhibernate nhibernate-mapping

5
推荐指数
2
解决办法
2418
查看次数

有没有办法查询SQL Server链接服务器而无需硬编码数据库名称?

我找到了代码所在的示例:

SELECT * FROM [legacyserver].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)

表达为:

SELECT * FROM [legacyserver]...[table]
Run Code Online (Sandbox Code Playgroud)

但不适合我.

它给了我错误:

为链接服务器"legacyserver"的提供程序"MSDASQL"指定了无效的架构或目录.

我用于旧服务器SQL SERVER 2000和新服务器SQL SERVER 2012.

我尝试使用以下方法创建链接服务器

EXEC sp_addlinkedserver 
   @server = 'legacyserver', 
   @srvproduct = '',
   @provider = 'MSDASQL',
   @provstr = 'DRIVER={SQL Server};SERVER=legacyserver;DATABASE=database;Trusted_Connection=Yes;',
Run Code Online (Sandbox Code Playgroud)

和:

EXEC sp_addlinkedserver 
   @server = 'legacyserver', 
   @srvproduct = '',
   @provider = 'MSDASQL',
   @provstr = 'DRIVER={SQL Server};SERVER=legacyserver;Trusted_Connection=Yes;',
   @catalog = 'database';
Run Code Online (Sandbox Code Playgroud)

是否可以在不对数据库名称进行硬编码的情况下创建脚本?

我需要创建一个非常大的迁移脚本,它需要使用开发,接受和生产数据库,并且在文本编辑器中使用replace会更改它并且容易出错.

更新:

遗留的开发,验收和生产数据库完全相同(数据除外),每个数据库都有自己的服务器/实例和数据库名称.

由于职责分离,我无法开发并部署它,因此我无法在接受后触摸此脚本.我需要指导别人这样做,如果他/她将需要更换的[legacyserver]每次出现.[数据库],出错的几率非常高.

t-sql sql-server linked-server

4
推荐指数
1
解决办法
2776
查看次数