当我使用 LINQ-to-SQL 使用以下简单的方法从我的 MSSQL 数据库中提取内容时,我一直注意到:
public IEnumerable<Contact> GetAll()
{
var Contacts = from c in _context.Contacts
select new Models.Contact
{
ContactID = c.ContactID,
FirstName = c.FirstName,
LastName = c.LastName,
Email = c.Email,
Phone = c.Phone,
Address1 = c.Address1,
Address2 = c.Address2,
City = c.City,
State = c.State,
Zip = c.Zip,
HighImportance = (bool)c.HighImportance,
PrimaryContact = (bool)c.PrimaryContact,
OfficeLocation = c.OfficeLocation
};
return Contacts;
}
我对要填充的 OfficeLocations 表有一个复杂的对象(外键引用)。如果我这样做:
_context.OfficeLocations.SingleOrDefault(ol => ol.OfficeLocationID == c.OfficeLocationID);
然后这将返回由我的 DBML 生成的类型。到目前为止,我一直在使用类似的东西:
OfficeLocation = new OfficeLocation
{
OfficeLocationID = c.OfficeLocationID,
Name = c.OfficeLocation.Name,
Phone = c.OfficeLocation.Phone
}
但我觉得应该有更好的方法来做到这一点,也许是通过在我的 DBML 数据对象上使用扩展方法或其他方式?
任何想法将不胜感激。
谢谢!