powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# ef codefirst структура один ко многим Discriminator
6 сообщений из 6, страница 1 из 1
c# ef codefirst структура один ко многим Discriminator
    #39258620
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите пожалуйста преобразовать структуру.

Текущая структура:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
[Table("Uchastok", Schema = "dbo")]
public abstract class Uchastok 
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
	
	public abstract object Reference { get; }
}

public class UchastokLand1 : Uchastok
{
    public virtual ICollection<Land1> Land1s { get; set; }
    public override object Reference
    {
            get { return Land1s.FirstOrDefault(); }
    }
}
public class UchastokLand2 : Uchastok
{
    public virtual ICollection<Land2> Land2s { get; set; }
    public override object Reference
    {
            get { return Land2s.FirstOrDefault(); }
    }
}

[Table("Land1", Schema = "dbo")]
public class Land1 : AbstractNotifyPropertyChangedClass
{      
    [Key]
    public int Id { get; set; }
	public string Name { get; set;}

    private ObservableCollection<UchastokLand1> _uchastoks;
    public ObservableCollection<UchastokLand1> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                    RaisePropertyChanged(GetPropertyName(() => Uchastoks));
                }
            }
    }
}
[Table("Land2", Schema = "dbo")]
public class Land2 : AbstractNotifyPropertyChangedClass
{      
    [Key]
    public int Id { get; set; }
	public int Number { get; set;}

    private ObservableCollection<UchastokLand2> _uchastoks;
    public ObservableCollection<UchastokLand2> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                    RaisePropertyChanged(GetPropertyName(() => Uchastoks));
                }
            }
    }
}




Мне нужно преобразовать эту структура так, чтобы в свойстве Uchastok, записи были одна ко многим свойствам (Land1, Land2 ... Landn ), т.е. чтобы один уникальный участок мог использоваться в различных свойствах.
...
Рейтинг: 0 / 0
c# ef codefirst структура один ко многим Discriminator
    #39258621
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
c# ef codefirst структура один ко многим Discriminator
    #39258849
unsafe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nechto, Не совсем понятно зачем тебе абстрактный класс.
К примеру в этой теме связь между продуктами и категориями является связью один-ко-многим. Можно увидеть как в классе продукты есть поле для категорий, а категории в свою очередь содержат список с продуктами.
...
Рейтинг: 0 / 0
c# ef codefirst структура один ко многим Discriminator
    #39260922
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил вопрос, таким образом
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
[Table("Uchastok", Schema = "dbo")]
public class Uchastok 
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
    public int Number { get; set;}
}

public abstract class UchastokReference 
{
    public int Id { get; set; }

    public int UchastokId { get; set; }
    public Uchastok Uchastok { get; set; }

    public abstract object Reference { get; }
}
public class UchastokLand1 : UchastokReference
{
    public virtual ICollection<Land1> Land1s { get; set; }
    public override object Reference
    {
            get { return Land1s.FirstOrDefault(); }
    }
}
public class UchastokLand2 : UchastokReference
{
    public virtual ICollection<Land2> Land2s { get; set; }
    public override object Reference
    {
            get { return Land2s.FirstOrDefault(); }
    }
}

[Table("Land1", Schema = "dbo")]
public class Land1 
{      
    [Key]
    public int Id { get; set; }
	public string Name { get; set;}

    private ObservableCollection<UchastokLand1> _uchastoks;
    public ObservableCollection<UchastokLand1> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                }
            }
    }
}
[Table("Land2", Schema = "dbo")]
public class Land2
{      
    [Key]
    public int Id { get; set; }
	public int Number { get; set;}

    private ObservableCollection<UchastokLand2> _uchastoks;
    public ObservableCollection<UchastokLand2> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                }
            }
    }
}
...
Рейтинг: 0 / 0
c# ef codefirst структура один ко многим Discriminator
    #39274967
Иммануил Кант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЗдравствуйте! Помогите пожалуйста преобразовать структуру.

Текущая структура:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
[Table("Uchastok", Schema = "dbo")]
public abstract class Uchastok 
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
	
	public abstract object Reference { get; }
}

public class UchastokLand1 : Uchastok
{
    public virtual ICollection<Land1> Land1s { get; set; }
    public override object Reference
    {
            get { return Land1s.FirstOrDefault(); }
    }
}
public class UchastokLand2 : Uchastok
{
    public virtual ICollection<Land2> Land2s { get; set; }
    public override object Reference
    {
            get { return Land2s.FirstOrDefault(); }
    }
}

[Table("Land1", Schema = "dbo")]
public class Land1 : AbstractNotifyPropertyChangedClass
{      
    [Key]
    public int Id { get; set; }
	public string Name { get; set;}

    private ObservableCollection<UchastokLand1> _uchastoks;
    public ObservableCollection<UchastokLand1> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                    RaisePropertyChanged(GetPropertyName(() => Uchastoks));
                }
            }
    }
}
[Table("Land2", Schema = "dbo")]
public class Land2 : AbstractNotifyPropertyChangedClass
{      
    [Key]
    public int Id { get; set; }
	public int Number { get; set;}

    private ObservableCollection<UchastokLand2> _uchastoks;
    public ObservableCollection<UchastokLand2> Uchastoks
    {
        get { return _uchastoks; }
        set {
                if (_uchastoks != value)
                {
                    _uchastoks = value;
                    RaisePropertyChanged(GetPropertyName(() => Uchastoks));
                }
            }
    }
}





Мне нужно преобразовать эту структура так, чтобы в свойстве Uchastok, записи были одна ко многим свойствам (Land1, Land2 ... Landn ), т.е. чтобы один уникальный участок мог использоваться в различных свойствах.

1. Наследование в Entity - семь раз отмерь и, обычно, выкинь
2. это Abstract NotifyPropertyChanged Class говорит о том, что представление смешано с Entity
3. "записи были одна ко многим свойствам (Land1, Land2 ... Landn ), т.е. чтобы один уникальный участок мог использоваться в различных свойствах" - не осилил, но, кажется тут п.1
...
Рейтинг: 0 / 0
c# ef codefirst структура один ко многим Discriminator
    #39276256
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иммануил Кант1. Наследование в Entity - семь раз отмерь и, обычно, выкинь
2. это Abstract NotifyPropertyChanged Class говорит о том, что представление смешано с Entity
3. "записи были одна ко многим свойствам (Land1, Land2 ... Landn ), т.е. чтобы один уникальный участок мог использоваться в различных свойствах" - не осилил, но, кажется тут п.1

Не знаю чем вам не нравится наследования. По мне так, очень удобно! Связываешь все что хочешь.
Вопрос уже решен, смотрите мой последний пост.
Единственное можно еще добавить в class Uchastok, это ссылку ICollection
Код: c#
1.
public virtual ICollection<UchastokReference> UchastokReference { get; set; }


И тогда будет полное счастье.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# ef codefirst структура один ко многим Discriminator
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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