Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Fluent Nhibernate 2.1.2 + Firebird 2.5.2 Названия колонок и таблиц в кавычках / 3 сообщений из 3, страница 1 из 1
30.03.2010, 17:16
    #36551117
jjjjj1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fluent Nhibernate 2.1.2 + Firebird 2.5.2 Названия колонок и таблиц в кавычках
Есть табл в базе

CREATE TABLE TABLETEST (
ID INTEGER NOT NULL,
NAME VARCHAR(50),
"Address" VARCHAR(100) -- Тестируем заполнение этого поля
);

Есть класс

public virtual int Id { get; private set; }
public public virtual string Name { get; set; }
public virtual string Address { get; set; }

Есть маппинг для него

Id(x => x.Id).Column("ID").GeneratedBy.Sequence("GEN_TABLETEST_ID");
Map(x => x.Name).Length(50).Column("NAME");
Map(x => x.Address).Column("Address").Length(100);

При простейшем запросе на сохранение юзера в базу
var user = new User{Name = "Alex", Address = "London"};
_userRepository.Save(user); --> session.SaveOrUpdate(user);

сразу видно, что хибер не обрамляет кавычками, а фаерберд естественно приводит к uppercase
could not insert: [WebDirector.Mappings.User#14][SQL: INSERT INTO tabletest (name, address, id) VALUES (?, ?, ?)]
Dynamic SQL Error
SQL error code = -206
Column unknown
ADDRESS
At line 1, column 30


Явное указание имени таблицы в маппинге не помагает (Column("Address")).
Есть еще вариант с изм метаданных SchemaMetadataUpdater.QuoteTableAndColumns(cfg);, с этим не разобрался.

Менять метаданные не хочеться, так как база уже используеться в другом проекте.

Подобный вопрос так и остался без ответа

Можно ли както разрулить с помощью подобное? (Conventions, свойство Map.Access в маппинге похоже не помогут).
...
Рейтинг: 0 / 0
05.04.2010, 11:58
    #36560797
SADT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fluent Nhibernate 2.1.2 + Firebird 2.5.2 Названия колонок и таблиц в кавычках
jjjjj1
Можно ли както разрулить с помощью подобное? (Conventions, свойство Map.Access в маппинге похоже не помогут).
А обязательно ли, чтобы поле было именно Address? Есть софт, который работает не через хибернэйт?
кстати, "\"Address\"" пробовали? Может то, что вы делаете задавая имя поля в БД равным имени поля класса, генерируется и так по умолчанию?
...
Рейтинг: 0 / 0
12.04.2010, 19:01
    #36574916
jjjjj1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fluent Nhibernate 2.1.2 + Firebird 2.5.2 Названия колонок и таблиц в кавычках
SADT,

Пробовал с разным сочетанием кавычек, не помогло. Сам маппинг файл создается правильно - с помощью PersistenceModel можно сгенерить xml маппинга из стандартного хибернейта, и там пропертя "Address".
Дальше полезли бачины с Composite id и log4net

Было решено переводить софт и новую админку к нему на MS, благо старый проект просто сервер связи между клиентам, небольшая апликуха.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Fluent Nhibernate 2.1.2 + Firebird 2.5.2 Названия колонок и таблиц в кавычках / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]