2009-09-14 2 views
0

Я знаю, что могу создавать ассоциации LINQ без внешнего ключа. Проблема в том, что я делаю это, добавляя атрибут [Association] в DBML-файл (то же, что и с помощью конструктора), который будет удален после обновления моей базы данных (и перезагрузки всей структуры таблицы).LINQ: создание устойчивых ассоциаций в коде без внешнего ключа

Я знаю, что есть файл MyData.cs (как часть DBML), в котором я могу разместить свои частичные расширения и т. Д. Для объектов домена (для сохранения даже после обновления DBML), но я не знаете, как создать там ассоциацию?

ответ

1

Вы можете создать файл CS и собственный частичный класс.

public partial class myClass 

И посмотрите, можете ли вы разместить там ассоциации. Я не работал с пользовательскими ассоциациями таким образом, но похоже, что он применяется к свойству. Вы можете вырезать и вставить свойство в частичный класс, и это будет создано.

public partial class Parent 
{ 

    [Association(Name = "Parent_Child", Storage = "_Childs", ThisKey = "ParentKey", OtherKey = "ChildKey")] 
    public EntitySet<Child> Childs 
    { 
     get 
     { 
      return this._Childs; 
     } 
     set 
     { 
      this._Childs.Assign(value); 
     } 
    } 
} 
+0

Не могли бы вы определить _Childs, чтобы заставить его работать? Что-то вроде 'protected EntityRef _Childs;' И затем определить частичный метод OnCreate 'partial void OnCreated() {this._Childs = default (EntityRef ); } '. – jahu

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