Bhu*_*kla 3 c# sql linq nhibernate asp.net-mvc-4
我有两个类在数据库中映射.这些表之间具有主键和外键关系,字段为"DeptId".
Employee.cs
public class Employee: Entity
{
public virtual Int32 Id { get; set; }
public virtual string Name { get; set; }
public virtual string Gender { get; set; }
public virtual Int32 Age { get; set; }
public virtual string Designation { get; set; }
public virtual bool Enabled { get; set; }
public virtual int CreatedById { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual int? LastModifiedById { get; set; }
public virtual DateTime? LastModifiedDate { get; set; }
public virtual bool IsDeleted { get; set; }
public virtual Department Department { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Department.cs
public class Department
{
public virtual int DeptId { get; set; }
public virtual string DeptName { get; set; }
public virtual bool Enabled { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由于我是NHibernate的新手,我无法使用QueryOver编写更复杂的Linq查询.我写了以下查询但是如何编写更多高级查询.请为我提供样本查询和参考.
var query = Session.QueryOver<Employee>().List();
Run Code Online (Sandbox Code Playgroud)
Rad*_*ler 12
NHibernate查询的文档非常好而且完整.您可以在这里找到基本知识:
这里记录了QueryOverAPI,它是完全类型的版本Criteria:
开始观察API文档.很快你会发现它是相当逻辑的(.Where()构建WHERE,.Select()调整SELECT ....).后来,如果有任何问题,SO充满了如何
从16.1调整到员工的示例:
var list = session
.QueryOver<Employee>()
.WhereRestrictionOn(c => c.Age).IsBetween(18).And(60)
.Select(c => c.Name)
.OrderBy(c => c.Name).Asc
.List<string>();
Run Code Online (Sandbox Code Playgroud)
加入部门(16.4调整后的例子)
var query = session
.QueryOver<Employee>()
.JoinQueryOver(e => e.Department)
.Where(k => k.DeptName == "Director");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20383 次 |
| 最近记录: |