Вы правильно поняли. ваш Phy_UserName
должен быть столбцом в вашей базе данных. Он возвращает объект Physicians
, и вы можете получить каждое значение следующим образом.
// `var physician` is the same as `Physician physician`
// where you're declaring a Physician object from your DBML file
// we're using `p` for `physician` in the lambda select function
var physician = (from p in myDb.Physicians
where p.Phy_UserName == txtUserName.Text
select p).FirstOrDefault();
// now that you've got a `physician` object, you can use the properties
// within the object as follows..
var password = physician.Password;
var firstName = physician.Phy_FName;
// etc
// please note that the physician object you have currently has ALL of the
// database fields for that particular physician
Теперь, если вы выберете только нужные свойства, вы подойдете к этому немного по-другому.
// first you declare a poco to store only the needed properties.
public class PhysicianViewModel {
public string Password {get; set;}
public string FirstName {get; set;}
}
// then you run your select query and drill down to grab
// only the required data fields from the database
var physicianViewModel = (from p in myDb.Physicians
where userAccounts.Phy_UserName == txtUserName.Text
select new PhysicianViewModel {
Password = p.Password,
FirstName = p.Phy_FName }).FirstOrDefault();
// and using them is the same as the above example
// the only difference here is that the `physicianViewModel` doesn't
// contain ANY properties other than the ones you specified.
var password = physicianViewModel.Password;
var firstName = physicianViewModel.FirstName;
Редактировать
Согласно вашему комментарию, приведенному ниже, это немного в стороне от предотвращения вставки значения null
в поле string
(nvarchar
) в базе данных.
Самый простой способ сделать это - добавить обязательный атрибут в свойство и убедиться, что вы проверяете его перед отправкой.
public class Physician {
[Required]
public string Password {get; set;}
public string Phy_FName {get; set;}
public string Phy_LName {get; set;}
}
Если в базе данных установить допустимое пустое значение false
, а затем обновить файл DBML, чтобы отразить изменения, атрибут [required]
будет автоматически добавлен в свойство.