Je suis relativement nouveau dans Linq to Entities mais je progresse bien. Un élément que je n'ai pas encore réussi à comprendre est comment extraire les noms de colonnes de la base de données. Par exemple, dans le code ci-dessous, je voudrais remplacer les constantes par les noms de champs de la base de données.Linq to Entities To Noms de colonnes
Je n'ai pas été en mesure d'obtenir les réponses que j'ai vues ailleurs travailler.
Toute aide sera appréciée.
Bob
DataTable dtNPRS = new DataTable();
const string kInitDate = "NPR_Init_Date";
const string kActive = "Active";
const string kStatusId = "NPR_Status_Id";
try
{
DataRow drNPR;
var nprs = (from n in db.FMCSA_NPR
join u in db.FMCSA_USER on n.CREATED_BY equals u.ID
join t in db.LKUP_NPR_TYPE on n.NPR_TYPE_ID equals t.ID
join s in db.LKUP_AUDIT_STATUS on n.NPR_STATUS_ID equals s.ID
where n.ROLE_ID == pRoleId && n.OWNER_ID == pOwnerId
&& n.NPR_STATUS_ID == pNPRStatusId && n.ACTIVE == pActive
select n).ToList();
if (nprs.Count() == 0)
return null;
///build the table structure we need
dtNPRS.Columns.Add(kInitDate, typeof(DateTime));
dtNPRS.Columns.Add(kActive,typeof(bool));
dtNPRS.Columns.Add(kStatusId,typeof(Int32));
foreach (var npr in nprs)
{
drNPR = dtNPRS.NewRow();
drNPR[kInitDate] = npr.NPR_INIT_DATE;
drNPR[kActive] = npr.ACTIVE;
drNPR[kStatusId] = npr.NPR_STATUS_ID;
dtNPRS.Rows.Add(drNPR);
}
return dtNPRS;
}
** Pourquoi diable ** accédez-vous à vos données avec un ORM comme Entity Framework, mais en le convertissant en lignes/colonnes dans votre programme? Cela n'a aucun sens ... ** ** soit rester avec ADO.NET classique et en utilisant DataTable/DataRow, ** ou ** passer à EF, puis utiliser ** objets ** - pas lignes et colonnes dans votre code ... –