10

i Fluent NHibernate mit C# in asp.net MVC3 bin mitFluent NHibernate Mapping für SQL-Ansichten

i in folgender Weise arbeite, eine Klasse zu generieren und Karte

Mapping

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

Klasse

 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} 

      } 

     } 

und in der Konfigurationsdatei

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


    } 

jetzt kommen Problem erstelle ich eine Sicht in SQL wie folgt

Sql Ansicht

CREATE VIEW [FeaturedCompanies] AS 

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

ich in meinem Code diese Ansicht verwenden möchten, sieht aus, als ein wie ich benutze, aber wie kann ich das tun, ich suchte viel, aber nichts gefunden auf Google

Bitte helfen m e und Dank im Voraus

was bisher versucht wird,

Klasse

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

Mapping

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

Antwort

14

Ansichten werden auf die gleiche Art und Weise abgebildet Tabellen abgebildet werden außer dass Siesetzen solltenim Mapping, um versehentliches Schreiben zu verhindern. Beispiel:

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

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

Update: die Grafen

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

zu bekommen, aber wie soll ich kann zählt bekommen (ich meine das Ergebnis meiner Ansicht in Rasierapparat Ansicht oder C#)? –

+0

sehe meine aktualisierte Frage, was ich versuchte meine Anwendung läuft gut, aber ich weiß nicht, wie man zählt in C# –