c# - LINQ 不识别 EF 生成的实体成员?
问题描述
var user = db.t_ST_User
.Where(_user => string.Compare(domain, _user.domainName, StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => string.Compare(samAccountName, _user.samAccountName, StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => _user.deleted == false)
.FirstOrDefault();
上面的代码给我下面的错误:
LINQ to Entities 不支持指定的类型成员“domainName”。仅支持初始化程序、实体成员和实体导航属性。
但是domainName
是 的实体成员t_ST_User
,不是吗?
代码在迁移到新计算机之前正在运行,不确定它是否相关。
public static int GetUserId(string domainName)
{
int nonExistingUserId = 0;
try
{
string message = "";
using (var db = new SurfaceTreatment.SurfaceTreatmentEntities())
{
string domain = domainName.Split('\\')[0].Trim();
string samAccountName = domainName.Split('\\')[1].Trim();
var user = db.t_ST_User
.Where(_user => string.Compare(domain, _user.domainName, StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => string.Compare(samAccountName, _user.samAccountName, StringComparison.OrdinalIgnoreCase) == 0)
.Where(_user => _user.deleted == false)
.FirstOrDefault();
if (user == null)
{
message = "Failed to get user by domain name: " + domainName;
LogHandler.LogDebug(logger, message);
return nonExistingUserId;
}
else
{
return user.userId;
}
}
}
catch (Exception ex)
{
LogHandler.LogError(logger, ex);
return nonExistingUserId;
}
}
public partial class t_ST_User
{
public int userId { get; set; }
public string badgeNumber { get; set; }
public string domainName { get; set; }
public string samAccountName { get; set; }
public string userName { get; set; }
public string userRemark { get; set; }
public System.DateTime createDate { get; set; }
public int createBy { get; set; }
public Nullable<System.DateTime> updateDate { get; set; }
public Nullable<int> updateBy { get; set; }
public bool deleted { get; set; }
public Nullable<System.DateTime> deleteDate { get; set; }
public Nullable<int> deleteBy { get; set; }
public string email { get; set; }
public bool confirmBeforeSubmitToApprover { get; set; }
public string preferredCompany { get; set; }
public string preferredDepartment { get; set; }
public string preferredPlant { get; set; }
public Nullable<int> preferredBuildingAddressId { get; set; }
}
创建表脚本:
CREATE TABLE [dbo].[t_ST_User](
[userId] [int] IDENTITY(1,1) NOT NULL,
[badgeNumber] [nvarchar](50) NOT NULL,
[domainName] [nvarchar](50) NOT NULL,
[samAccountName] [nvarchar](50) NOT NULL,
[userName] [nvarchar](150) NOT NULL,
[userRemark] [nvarchar](max) NULL,
[createDate] [datetime] NOT NULL,
[createBy] [int] NOT NULL,
[updateDate] [datetime] NULL,
[updateBy] [int] NULL,
[deleted] [bit] NOT NULL,
[deleteDate] [datetime] NULL,
[deleteBy] [int] NULL,
[email] [nvarchar](max) NULL,
[confirmBeforeSubmitToApprover] [bit] NOT NULL,
[preferredCompany] [nvarchar](50) NULL,
[preferredDepartment] [nvarchar](50) NULL,
[preferredPlant] [nvarchar](50) NULL,
[preferredBuildingAddressId] [int] NULL,
CONSTRAINT [PK_t_ST_User] PRIMARY KEY CLUSTERED
(
[userId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
解决方案
t_ST_User
从 edmx中删除后问题解决,然后再次通过添加回来Update Model from Database
。
推荐阅读
- angular - 如何为 Angular 6 应用程序启用 CSS 源映射?
- swift - 电子邮件验证器 RxSwift?
- python - 附加到 python dict 时生成属性错误
- django - django Restframework_覆盖rest_auth LoginView
- c# - C#获取检查径向列表选项的有效方法
- javascript - 以用户身份从 chrome 扩展发送请求
- android - 在 play store 上发布后可以更改包名吗?
- java - java @Value 是如何工作的?
- javascript - 在用户定义的消息中呈现 html 内容
- java - JLabel 不会出现在 JPanel 上