У меня была та же проблема, связанная с выставлением объектов Entity через службу WCF, и я использовал обходной путь, который вы связали с здесь , который заключается в добавлении следующего атрибута к свойствам, чтобы заставить их сериализоваться.
[global::System.Runtime.Serialization.DataMemberAttribute()]
Я не нашел "хороших" способов заставить это работать.
Например, для сущности Учитель с полями Название, Имя и Фамилия вы можете добавить частичный класс для Учителя, например:
public partial class Teacher
{
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string FullName
{
get { return string.Format("{0} {1} {2}", Title, Forenames, Surname); }
set { }
}
}
Затем, если ваш интерфейс службы WCF ссылается на этот класс, дополнительные свойства сериализуются и становятся доступными для потребителей службы.
например.
[OperationContract]
List<Teacher> GetTeachers();