asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – Sql Views的流畅Nhibernate映射大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Fluent Nhibernate在asp.net mvc3与c#

我正在按照以下方式生成和映射一个类

制图

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);
 }
}

解决方法

视图的映射方式与表映射的方式相同,只是您应该将Readonly()放在映射中,以防止意外写入.例:
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,请注明来意。