NHibernate ж / Свободно - не настаивать на: [класс] - PullRequest
4 голосов
/ 22 ноября 2010

Я впервые использую NHibernate, но хотел по возможности избежать конфигурационных файлов, используя NHibernate Fluent.У меня есть настройка проекта, и я пытаюсь просто запросить адресный объект, используя следующий

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

Однако он не работает с методом Get<T>() с ошибкой, сообщающей об отсутствии сохранения.Мои классы адресов приведены ниже.

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

Я использую существующую базу данных, поэтому постараюсь игнорировать прикольную структуру таблиц / имен.

Я что-то здесь упускаю?Может ли кто-нибудь из вас увидеть что-то, что объясняет, почему он жалуется на «Нет персистирования»?

1 Ответ

3 голосов
/ 22 ноября 2010

Сборка в AddFromAssemblyOf должна быть сопоставленным классом, а не файлом сопоставления.Адрес находится в другой сборке, чем AddressMapping?Попробуйте изменить его на AddFromAssemblyOf<YourNamespace.Address>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...