NHibernate渴望加载可以使用Fetch和完成FetchMany,如在Mike Hadlow博客上的NHibernate Linq Eager Fetching中所述.
这两种方法有什么区别,在什么情况下都会使用?
可能重复:
如何确定十进制/双精度是否为整数?
我有一个double类型的变量,我想检查它是否是一个整数.
目前我有
public bool CheckIfInteger(double number)
{
return number.ToString().Contains(".") == false;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
更新:对不起我没有意识到混淆的可能性,整数我的意思是整数的数学定义,即自然数和非零自然数的负数.
有一个问题已经讨论过如何将项目/解决方案绑定添加到TFS,但它似乎只适用于Visual Studio 2008(我无法在VS2010中找到"更改源代码控制"对话框).
我已经在TFS中的本地机器上有一个解决方案和源代码,但它没有TFS绑定(在Visual Studio解决方案资源管理器中生成挂锁图标并允许自动签出的东西).
如何使用Visual Studio 2010将绑定添加到现有TFS项目?
我已经使用Linq实现了规范模式,如下所述https://www.packtpub.com/article/nhibernate-3-using-linq-specifications-data-access-layer
我现在想要增加急切负载的能力,并且不确定最好的方法.
链接示例中的通用存储库类:
public IEnumerable<T> FindAll(Specification<T> specification)
{
var query = GetQuery(specification);
return Transact(() => query.ToList());
}
public T FindOne(Specification<T> specification)
{
var query = GetQuery(specification);
return Transact(() => query.SingleOrDefault());
}
private IQueryable<T> GetQuery(
Specification<T> specification)
{
return session.Query<T>()
.Where(specification.IsSatisfiedBy());
}
Run Code Online (Sandbox Code Playgroud)
并且规范实现:
public class MoviesDirectedBy : Specification<Movie>
{
private readonly string _director;
public MoviesDirectedBy(string director)
{
_director = director;
}
public override
Expression<Func<Movie, bool>> IsSatisfiedBy()
{
return m => m.Director == _director;
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,我现在想要添加能够加载的能力.我理解NHibernate的热切加载可以通过在查询上使用Fetch来完成.
我正在寻找的是是否在规范中封装急切的加载逻辑或将其传递到存储库,以及实现此目的所需的Linq /表达式树语法(即如何完成它的示例).
linq nhibernate specification-pattern repository-pattern eager-loading
我有一个父对象,其子集合包含一个元素,子集合包含一个包含3个元素的"孙子"集合.
我使用NHibernate从数据库加载父对象,如下所示
Parent parentObject = session.Query<Parent>()
.FetchMany(x => x.Children)
.ThenFetchMany(x => x.GrandChildren)
.Where(x => x.Id = "someparentid")
.Single();
Run Code Online (Sandbox Code Playgroud)
我发现的是,当应该只有一个子对象时,附加到父对象的子对象(总共3个).(每个孩子都有正确连接的3个孙子对象.)渴望加载子集合只能正常工作.
你知道如何在没有重复孩子的情况下加载完整的父对象吗?
我正在使用Fluent NHibernate从.Net实体类生成数据库模式.我有两个类,User并且Permission有多对多关系,Fluent NHibernate正在UsersToPermissions数据库中正确生成联结表.
正如预期的那样,联结表存储主键UserId和PermissionId.我想要的是还有这个表附带的审计信息,如CreatedDate和UpdatedDate.我已经使用NHibernate文档中描述的拦截器在非连接表上实现了这一点.
如何在UsersToPermissions表上实现审计列?
我有一个类型字典,Dictionary<int, double>想要消除等于某个值的值.
目前我有
Dictionary <int, double> dict = GetDictionary();
dict = dict.Where(x => x.Value != 100).Select(x => x);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法隐式将类型' System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,double>>' 转换为' System.Collections.Generic.Dictionary<int,double>'.存在显式转换(您是否错过了演员?)
如何使用Linq实现我想要做的事情?
nhibernate ×4
.net ×3
linq ×3
c# ×2
fetch ×2
audit ×1
dictionary ×1
double ×1
integer ×1
many-to-many ×1
tfs ×1
tfs2010 ×1
types ×1
unit-testing ×1