#c# #.net #linq #linq-to-sql #entityset
#c# #.net #linq #linq-to-sql #набор объектов
Вопрос:
Привет, я получил файл dbml, который начинает добавлять 1 в конец имени набора объектов, есть ли какой-либо способ навсегда исправить это? Если я изменю его в файле конструктора, он просто вернется при обновлении файла.
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Product_CompositeProduct", Storage="_CompositeProducts1", ThisKey="ProductNo", OtherKey="ParentID")]
public EntitySet<CompositeProduct> CompositeProducts1
{
get
{
return this._CompositeProducts1;
}
set
{
this._CompositeProducts1.Assign(value);
}
}
Я мог бы просто изменить остальную часть своего кода, но мне не нравится иметь 1 в имени.
Комментарии:
1. У вас есть несколько внешних ключей к одной таблице?
2. Он получил 1 основной и 1 внешний ключ
Ответ №1:
Похоже, у вас уже есть свойство с именем CompositeProducts , и именно поэтому оно добавляет 1 в конец набора объектов. в следующий раз он добавит 2.
Комментарии:
1. Где я могу это проверить? когда я открываю файл Db.dbml, визуально я могу найти только 1 экземпляр CompositeProduct, возможно, ошибка в файле Db.dbml.layout?
2. Это заработало, открыв Db.dbml в редакторе xml и переименовав его. Также можно подтвердить, что существует только 1 экземпляр. Хотя сейчас это работает, я думаю, это только вопрос времени, прежде чем это произойдет снова. Так что постоянное исправление было бы неплохо.
3. Возможно ли, что вы сейчас подключаетесь к другой базе данных. Например, вы сгенерировали dbml на основе db на sqlserver1 , а затем подключаетесь к DB на sqlsever2.
4. J.W В какой-то момент он был подключен к другому sqlserver для решения проблемы со скоростью, может быть причиной. Но на данный момент это выглядит так, как будто это исправлено с помощью редактирования xml DB-dbml