в решении у меня есть класс интерфейса IUser и, в другом проекте, класс, реализующий Пользователь , реализующий IUser .
Выполнение запросов Linq для объектов IUser приводит к следующему исключению:
Указанный член типа «Имя пользователя» не поддерживается в LINQ to Entities.Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей.
Не могли бы вы помочь мне решить эту проблему?С наилучшими пожеланиями
Sample query(Users() returns IQueryable<IUser>:
var c= (from user in bank.Users()
where user.Username == "anUser"
select user);
здесь ниже некоторый код:
//the interface
public interface IUser
{
string Username { get; }
}
// the implementation
public partial class User : IUser
{
public string Bankname
{
get
{
return bank_name;
}
}
// the partial class generated from the entity model
[EdmEntityTypeAttribute(NamespaceName="Database1Model", Name="User")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class User : EntityObject
{
#region Factory Method
/// <summary>
/// Create a new User object.
/// </summary>
/// <param name="user_name">Initial value of the user_name property.</param>
/// <param name="pass_hash">Initial value of the pass_hash property.</param>
/// <param name="is_admin">Initial value of the is_admin property.</param>
/// <param name="bank_name">Initial value of the bank_name property.</param>
/// <param name="is_enabled">Initial value of the is_enabled property.</param>
public static User CreateUser(global::System.String user_name, global::System.String pass_hash, global::System.Boolean is_admin, global::System.String bank_name, global::System.Boolean is_enabled)
{
User user = new User();
user.user_name = user_name;
user.pass_hash = pass_hash;
user.is_admin = is_admin;
user.bank_name = bank_name;
user.is_enabled = is_enabled;
return user;
}
#endregion
#region Primitive Properties
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String user_name
{
get
{
return _user_name;
}
set
{
if (_user_name != value)
{
Onuser_nameChanging(value);
ReportPropertyChanging("user_name");
_user_name = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("user_name");
Onuser_nameChanged();
}
}
}
private global::System.String _user_name;
partial void Onuser_nameChanging(global::System.String value);
partial void Onuser_nameChanged();
.
.
.
.
}