В настоящее время я пытаюсь выбрать несколько столбцов в C # с помощью Linq-to-SQL.Глядя на другие потоки так же, как этот , это довольно просто сделать, поэтому я попытался:
var users = context.GetTable<DbHelper.User>();
var query = from u in users
where u.Email == TbUsername.Text
select new { u.Active, u.Password };
if(!query.Any())
{
MessageBox.Show("Could not find an account with that Email");
return;
}
var result = query.First(); // Error occurs here
Таблица пользователей в DbHelper
:
[Table(Name="Users")]
public class User
{
[Column(IsPrimaryKey = true, AutoSync = AutoSync.OnInsert, IsDbGenerated = true)]
public int Id { get; set; }
[Column]
public int RoleID { get; set; }
[Column]
public string Email { get; set; }
[Column]
public string Password { get; set; }
[Column]
public string Firstname { get; set; }
[Column]
public string Lastname { get; set; }
[Column]
public int OfficeID { get; set; }
[Column]
public string Birthdate { get; set; }
[Column]
public int Active { get; set; }
}
Таблица в SQL Server выглядит следующим образом:
[ID] INT IDENTITY (1, 1) NOT NULL,
[RoleID] INT NOT NULL,
[Email] NVARCHAR(150) NOT NULL,
[Password] NVARCHAR(50) NOT NULL,
[FirstName] NVARCHAR(50) NULL,
[LastName] NVARCHAR(50) NOT NULL,
[OfficeID] INT NULL,
[Birthdate] DATE NULL,
[Active] BIT NULL,
, что приводит к ошибке
System.InvalidCastException: преобразование недопустимо
Что не так с моим кодом?Это действительно сбивает с толку, так как, кажется, работает на других.Если вам нужно больше кода, пожалуйста, дайте мне знать