using System.Data.Linq.Mapping;
[Table(Name = "UserInfo")]
public class UserInfo
{
[Column(IsDbGenerated = true, IsPrimaryKey = true, AutoSync = AutoSync.OnInsert, CanBeNull = false)]
public int Id { get; set; }
[Column]
public int Age { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Address { get; set; }
}
public class DbLinq : DataContext
{
/// <summary>
/// 连接字符串
/// </summary>
public static string ConnectionStr { get; set; }
public DbLinq() : base(ConnectionStr)
{
}
/// <summary>
/// 可用于增删改查
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public Table<T> QueryInfo<T>() where T : class
{
if (Connection.State != ConnectionState.Open)
{
new DbLinq();
}
return this.GetTable<T>();
}
}
当我定义一个实体类时,这样调用一个方法
var linq = new Oscar.DbLinq();
var model = linq.QueryInfo<UserInfo>().Where(item => item.Id == 4).Select(item => new UserInfo {Address= item.Address }).FirstOrDefault();
这个时候返回的结果是出现不允许在查询中显式构造实体类型解决方案。异常情况,经过查询是设置了主键字段的IsPrimaryKey = true,如果把它删除就可以,这种情况如何修改