Частичный класс не соответствует автоматически сгенерированной части класса

#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:

Определения классов не могут быть распределены по сборкам.