Witam
Mam taką klasę
public interface IACUser
{
int id { get; set; }
int nr { get; set; }
string name { get; set; }
string password { get; set; }
}
[Table(Name="ACUsr")]
public class ACUserLINQ : IACUser
{
[Column(IsPrimaryKey = true, CanBeNull = false)]
public int id { get; set; }
[Column(CanBeNull = false)]
public int nr { get; set; }
[Column(CanBeNull = true)]
public string name { get; set; }
[Column(CanBeNull = true)]
public string password { get; set; }
}
z bazy odczytuję
List<IACUser> _sourceusers = new List<IACUser>();
OdbcConnection odbc = new OdbcConnection();
odbc.ConnectionString = @"Provider=System.Data.OleDb;DSN=baza";
using (DataContext db = new DataContext(odbc))
{
_sourceusers.AddRange((from p in db.GetTable<ACUserLINQ>() select p).ToList());
}
i tu mam pytanie bo niby opisy są ale dostaję wyjątek i nie mogę zrozumieć o co chodzi.
Jak chcę zawęzić wybieranie rekordów to powinienem zastosować
_sourceusers.AddRange((from p in db.GetTable<ACUserLINQ>() where p.nr==1 select p).ToList());
Niestety zwracany jest wyjątek że oczekiwany parametr 1. Oczywiście w pierwszym wariancie wszystkie rekordy i pola są wypełnione więc klasa obiektu raczej jest dobra. Zachowuje się tak jakby nie było pola nr (zresztą innych pól też nie widzi)
I drugie pytanie bo też nie znalazłem przykładu który by mi zadziałał
Jak dodać, usunąć i zmodyfikować za pomocą obiektu tą tablicę. taki kod
(from u in db.GetTable<ACUserLINQ>() select u).ToList().ForEach(a => a.nr = 2);
db.SubmitChanges();
tez zwraca wyjątek (nie pamiętam teraz jaki). wyjątek zwracany jest z SubmitChanges.
Grzesiek