#c# #entity-framework #.net-4.0 #resharper #partial
#c# #entity-framework #.net-4.0 #resharper #частичный
Вопрос:
Я создал entity model для своих классов БД, вот один из них:
[EdmEntityTypeAttribute(NamespaceName="SotiModel", Name="SKUPrice")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class SKUPrice : EntityObject
{
...
}
и создал частичный класс для одного из них
public partial class SKUPrice
{
}
Проблема здесь в том, что «частичный» мир написан «светлым» цветом, и resharper предлагает: «частичный класс с одной частью».
Похоже, что моя «собственная» часть частичного класса не соответствует «основной» части…
Почему? Как это исправить?
Большое спасибо!
P.S. Я работаю в VS2010, под Windows7 (64bit)
Я не знаю, в чем на самом деле проблема, но по какой-то причине, если я копирую / вставляю исходный код класса из одного файла в другой и после этого переименовываю имя класса и имя имени класса метаданных — это не «рассматривается» Visual Studio как допустимый класс.
Если я удалю файл с этим «сломанным» классом и введу ВСЕ вручную с нуля — файл будет принят studio…
Странная и глупая вещь… но это так…
Если вы знаете, почему это происходит — пожалуйста, дайте мне знать.
Спасибо.
Комментарии:
1. иногда это происходит, когда у вас есть код ошибки где-то еще. просмотрите свой код
Ответ №1:
Каждое определение класса должно находиться в одном пространстве имен, чтобы они были правильно сопоставлены.
Комментарии:
1. Да, я просто забыл упомянуть: они находятся в одном пространстве имен
Ответ №2:
У меня была похожая проблема. Попробуйте перезапустить Visual Studio.
Комментарии:
1. Это довольно плохой показатель, если это решение многих проблем сборки с IDE…
Ответ №3:
Это звучит глупо, но попробуйте ввести пространство имен вручную.
Моя проблема похожа на вашу, и после добавления пробела после пространства имен resharper волшебным образом распознает частичный класс. Я попытался удалить пробел, и это все еще работает. Короче говоря, файл исходного кода практически одинаков, но они обрабатываются по-разному только потому, что пространство имен имеет какие-либо следы ввода вручную или нет.
Для меня звучит как ошибка VS.
Комментарии:
1. Как очень странно — повторный ввод пространства имен помог мне в этом сценарии. Спасибо!
Ответ №4:
Я знаю, что прошло некоторое время, но я только что столкнулся с этой проблемой, и я заметил, что мой x:Class="NAME"
файл не соответствует файлу NAME
. Я тоже скопировал и вставил, но сначала забыл внести это изменение. Сопоставление имен устранило все проблемы, с которыми я сталкивался.
Ответ №5:
У меня такая же проблема, и я решаю ее путем понижения версии resharper 6.1 до 6.0, и все работает хорошо. Если вы используете resharper, попробуйте временно удалить его.
Ответ №6:
Определения классов не могут быть распределены по сборкам.