Nhibernate Fluent pour la Cartographie de Vues Sql
j'utilise Couramment dans Nhibernate asp.net mvc3 avec c#
je travaille dans suivant manière à générer et à la carte d'une classe
Cartographie
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);
}
}
}
Classe
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}
}
}
et dans le fichier de configuration
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();
}
maintenant problème je viens de créer une vue dans sql ressemble à ceci
Vue Sql
CREATE VIEW [FeaturedCompanies] AS
SELECT COUNT(Company.id) As Count FROM Company
WHERE Name='Alias'
je veux utiliser ce point de vue dans mon code comme je suis à l'aide, mais comment puis-je faire , j'ai beaucoup cherché mais rien trouvé sur google
Moyens de m'aider et merci d'avance
ce qui est essayé jusqu'à présent
Classe
public class FeaturedCompany
{
public virtual int id { get; set; }
public virtual int name { get; set; }
public virtual int count { get; set; }
}
Cartographie
public class FeaturedCompanyMap : ClassMap<FeaturedCompany>
{
public FeaturedCompanyMap()
{
Table("FeaturedCompanies");
ReadOnly();
Id(x => x.id);
Map(x => x.name);
Map(x => x.count);
}
}
Vous devez vous connecter pour publier un commentaire.
Les vues sont mappés de la même façon les tables sont mappés à l'exception que vous devriez mettre
Readonly()
dans la cartographie pour éviter accidentellement écrit pour elle. Exemple:Mise à jour: pour obtenir le compte