2013-11-27 8 views
0

я в настоящее время эти картыFluent NHibernate PersistentSpecification Тест терпит неудачу

public class CountryMap : ClassMap<Country> 
{ 
    public CountryMap() 
    { 
     Table("tblCountry"); 
     Id(x => x.Id, "intCountryId"); 
     Map(x => x.Name, "strCountryName"); 
     HasMany(x => x.FlagImages) 
      .Table("tblImage") 
      .KeyColumn("intRelId") 
      .Where("intObjId=29") 
      .Not.Cascade.All(); 
    } 
} 

public class ImageMap : ClassMap<Image> 
{ 
    public ImageMap() 
    { 
     Table("tblImage"); 
     Id(x => x.Id, "intImgId"); 
     Map(x => x.ObjId, "intObjId"); 
     Map(x => x.RelId, "intRelId"); 
     Map(x => x.ImageName, "strImage"); 
    } 
} 

и следующие постоянные испытания спецификации:

 PersistenceSpecification<Image>(session)() 
      .CheckProperty(r => r.Id, 1) 
      .CheckProperty(r => r.ImageName, "ss") 
      .CheckProperty(r => r.ObjId, (int)ObjectType.Country) 
      .CheckProperty(r => r.RelId, 102) 
      .VerifyTheMappings(); 

Несколько тесты Image не удались.

Сообщение отказ Assert.AreEqual failed. Expected:<(null)>. Actual:<NHibernate.Exceptions.GenericADOException: could not insert: [HansaCrew.Models.Images.Image][SQL: INSERT INTO tblImage (intObjId, intRelId, strImage) VALUES (?, ?, ?); select last_insert_rowid()] ---> System.Data.SQLite.SQLiteException: constraint failed foreign key constraint failed

Я проверил его в течение 2 дней и не найти причину. Любая помощь?

ответ

0

Хорошо, я понял.

Задача этого куска кода лежит здесь

 HasMany(x => x.FlagImages) 
     .Table("tblImage") 
     .KeyColumn("intRelId") 
     .Where("intObjId=29") 
     .Not.Cascade.All(); 

NHibernate автоматически создает ограничение внешнего ключа с tblImage, который имеет много intRelId с, что не находится в колонке intCountryId в таблице tblCountry. Вот почему тест не соответствует заявлению о сдерживании ограничения внешнего ключа.

Путь к решению этой проблемы заключается в создании view в базе данных, а затем отобразить view в Image модели

Смежные вопросы