大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – Sql Views的流畅Nhibernate映射,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在按照以下方式生成和映射一个类
制图
using FluentNHibernate.Mapping; using Com.Web.Domain; namespace Com.Web.Mapping { public class Companymap : Classmap<Company> { public Companymap() { Id(x => x.id); Map(x => x.Name); } } }
类
using System.Collections.Generic; using System; namespace Com.Web.Domain { public class Company { public virtual int id { get; set; } public virtual String Name{get;set} } }
和配置文件
private static void InitializeSessionFactory() { _sessionFactory = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2008 .ConnectionString(local) ) .Mappings(m => m.FluentMappings .AddFromAssemblyOf<Company>()) .ExposeConfiguration(cfg => new scheR_952_11845@aExport(cfg) .Create(false,falsE)) // this is intentionally set false,bcz i dont want to regenerate table when application starts every time .buildSessionFactory(); }
现在问题来了,我在sql中创建一个视图看起来像这样
Sql视图
create view [FeaturedCompanies] AS SELECT COUNT(Company.id) As Count FROM Company WHERE Name='Alias'
我想在我的代码中使用这个视图,就像我正在使用,但我怎么能这样做,我搜索了很多,但在谷歌没有发现
请帮助我,提前感谢
到目前为止已经尝试了什么
类
public class FeaturedCompany { public virtual int id { get; set; } public virtual int name { get; set; } public virtual int count { get; set; } }
制图
public class FeaturedCompanymap : Classmap<FeaturedCompany> { public FeaturedCompanymap() { Table("FeaturedCompanies"); ReadOnly(); Id(x => x.id); Map(x => x.Name); Map(x => x.count); } }
public class FeaturedCompanymap : Classmap<FeaturedCompany> { public FeaturedCompanymap () { Table("FeaturedCompanies"); ReadOnly(); Id(x => x.Id); Map(x => x.Name); Map(x => x.Count); } }
更新:得到计数
var results = session.Query<FeaturedCompany>().Where(filter).List(); foreach(var row in results.SELEct(r => "Alias: " + r.Name + " Occurence: " + r.Count)) { // print row to screen }
以上是大佬教程为你收集整理的asp.net-mvc – Sql Views的流畅Nhibernate映射全部内容,希望文章能够帮你解决asp.net-mvc – Sql Views的流畅Nhibernate映射所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。