У нас есть простая таблица для каждого типа Модель Entity Framework 4.0: -
- Все классы ALl являются POCO.
- Класс сообщения
abstract
. Discussion
и List
- это классы concretes
, которые наследуют от сообщений (как показано на диаграмме).
Когда мы пытаемся сохранить Discussion
, мы делаем следующий код: -
Posts.AddObject(discussion);
И синтаксис Sql Server состоит из двух частей.Вторая ошибка.Обратите внимание на пространство имен схемы sql?это почему?(Код взят из EFProf )
insert [dbo].[Posts]
([Subject],
[UniqueSubject],
[Content],
[CreatedOn],
[ModifiedOn],
[IsVisible],
[UserId])
values('Test Subject' /* @0 */,
'sdfsdfsdfsdfsfdssd' /* @1 */,
'this is a lot of content - pew pew pew' /* @2 */,
'23/09/2010 12:22:08 PM +10:00' /* @3 */,
'23/09/2010 12:22:08 PM +10:00' /* @4 */,
1 /* @5 */,
1 /* @6 */)
select [PostId]
from [dbo].[Posts]
where @@ROWCOUNT > 0
and [PostId] = scope_identity()
insert [XWingModelStoreContainer].[Discussions]
([PostId])
values(20132 /* @0 */)
Обратите внимание, что имя таблицы [XWingModelStoreContainer]. [Обсуждения] ??Разве это не должно быть [dbo]. [Обсуждения] ??Как мы можем это исправить, пожалуйста?
.
.
ОБНОВЛЕНИЕ:
Кроме того, вот еще один снимок экрана свойств нашегодизайнер ... так что вы можете видеть, что мы думали , что он должен вызывать [dbo], так как это значение по умолчанию Database Scheme Name
..
ив файле Xml edmx
.. есть две именованные строки ..
<edmx:StorageModels>
<Schema Namespace="XWingModel.Store" Alias="Self"
Provider="System.Data.SqlClient" ProviderManifestToken="2008"
xmlns:store="http://schemas.microsoft.com.. snip ..."
xmlns="http://schemas.microsoft.com/ ..snip ..">
<EntityContainer Name="XWingModelStoreContainer">
.....
и ..
<!-- C-S mapping content -->
<edmx:Mappings>
<Mapping xmlns="http://schemas.microsoft.c.. snip .." Space="C-S">
<Alias Key="Model" Value="XWingModel" />
<Alias Key="Target" Value="XWingModel.Store" />
<EntityContainerMapping CdmEntityContainer="XWingEntities"
StorageEntityContainer="XWingModelStoreContainer">
.......
Это также помогает?Я понятия не имею, как эти имена попали туда (я полагаю, автоматически) и как мне нужно изменить их?Если это так, похоже, что это возможно только через XML-файл ... что хорошо ... но чувствует себя ... неправильно?
Приветствия:)