NHibernateを初めて使用していますが、可能ならNHibernate Fluentを使用して設定ファイルを避けたいと思っていました。私はプロジェクトのセットアップを持っていると私はそれがそこには何も存続されていない文句エラーでGet<T>()
方法に吹いていますが、単純に次NHibernate with Fluent - No persister for:[クラス]
[TestMethod]
public void TestMethod1()
{
var cfg = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.Is("[ConnectionStringHere")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<RedSand.Models.Data.Mapping.AddressMapping>());
var sessionFactory = cfg.BuildSessionFactory();
var session = sessionFactory.OpenSession();
session.Get<Address>(new Guid("A8B9BA39-425D-4AE6-A72E-00216ABC87C4"));
}
を使用してアドレスオブジェクトのクエリを実行しようとしています。私のアドレスクラスは以下の通りです。
public class Address
{
public Guid AddressId { get; set; }
public string AddressType { get; set; }
public string StreetAddress { get; set; }
public Guid CityId { get; set; }
public string PostalCode { get; set; }
public bool DefaultAddress { get; set; }
public bool TermAddress { get; set; }
public string SuiteNumber { get; set; }
public float Latitude { get; set; }
public float Longitude { get; set; }
public int Accuracy { get; set; }
}
public class AddressMapping : ClassMap<Address>
{
public AddressMapping()
{
Table("tblAddress");
Not.LazyLoad();
Id(a => a.AddressId).Column("AddressID").GeneratedBy.Guid();
Map(a => a.StreetAddress).Column("Address").Length(100);
Map(a => a.CityId).Column("CityID");
Map(a => a.PostalCode).Length(50);
Map(a => a.DefaultAddress);
Map(a => a.TermAddress).Default("0");
Map(a => a.SuiteNumber).Column("SuiteNo").Length(50);
Map(a => a.Latitude);
Map(a => a.Longitude);
Map(a => a.Accuracy);
}
}
私は既存のデータベースを使用していますので、ファンキーなテーブル構造/名前を無視してみてください。
ここに何か不足していますか?なぜあなたはNo persisterについて不平を言っているのかを説明する何かを見ることができますか?
私はこれを複製しようとしましたが、失敗することはありません。 2つの別々の "Address"クラスが定義されていませんか? – mxmissile
多分私は同じことをして、新しいアプリケーションを作成して自分自身のエラーを複製しようとしました。それはエラーを引き起こすでしょうか? –