10

estoy usando Fluido Nhibernate en MVC3 asp.net con C#Fluido Mapeo Nhibernate de vistas SQL

estoy trabajando en el seguimiento de manera de generar y asignar una clase

Mapeo

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

Clase

 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} 

      } 

     } 

y en el fichero de configuración

private static void InitializeSessionFactory() 
    { 

     _sessionFactory = Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2008 
          .ConnectionString(local) 

      ) 
      .Mappings(m => 
         m.FluentMappings 
          .AddFromAssemblyOf<Company>()) 
      .ExposeConfiguration(cfg => new SchemaExport(cfg) 
      .Create(false, false)) // this is intentionally set false , bcz i dont want to regenerate table when application starts every time 
      .BuildSessionFactory(); 


    } 

ahora problema es que yo crea una vista en SQL tiene este aspecto

vista SQL

CREATE VIEW [FeaturedCompanies] AS 

    SELECT COUNT(Company.id) As Count FROM Company 
    WHERE Name='Alias' 

quiero usar este punto de vista en mi código como un me gusta estoy usando, pero ¿cómo puedo hacer eso, busqué mucho pero no encontré nada en google

Pleas help m e y gracias de antemano

lo que se pretende en lo que va

Clase

public class FeaturedCompany 
{ 
    public virtual int id { get; set; } 
    public virtual int name { get; set; } 
    public virtual int count { get; set; } 
} 

Mapeo

public class FeaturedCompanyMap : ClassMap<FeaturedCompany> 
    { 
public FeaturedCompanyMap() 
{ 
    Table("FeaturedCompanies"); 
    ReadOnly(); 
    Id(x => x.id); 
    Map(x => x.name); 
    Map(x => x.count); 
} 
} 

Respuesta

14

Vistas se asignan de la misma manera las tablas se asignan excepto que debe poner Readonly() en el mapeo para evitar escribir accidentalmente en él. Ejemplo:

public class FeaturedCompanyMap : ClassMap<FeaturedCompany> 
{ 
    public FeaturedCompanyMap() 
    { 
     Table("FeaturedCompanies"); 
     ReadOnly(); 

     Id(x => x.Id); 
     Map(x => x.Name); 
     Map(x => x.Count); 
    } 
} 

Actualización: llevar los conteos

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 
} 
+0

pero ¿cómo puedo conseguir los recuentos (me refiero al resultado de mi vista en vista de afeitar o C#)? –

+0

vea mi pregunta actualizada, lo que probé es que mi aplicación funciona bien, pero no sé cómo contarla en C# –

Cuestiones relacionadas