LINQ to ENTITY- 목록 템플릿 MVC 페이지에있을 때 모델의 다른 테이블에 도달 할 수 있습니까?
-
08-07-2019 - |
문제
프로젝트 템플릿 솔루션 (Dynamic Data Web Application)에서 모델이 생성되었으며 모든 것이 좋습니다. - 테이블 목록과 선택 편집 등을 가져옵니다.
그러나 내 데이터베이스에는 Forgien 키가 포함 된 링크 테이블이 있습니다. 따라서 목록 템플릿에는 FK 값 만 표시됩니다.
기본 테이블의 행 목록을 FK를 기반으로 한 다른 테이블을 검사 할 수있는 곳이 있습니까?
SQL에 가입하는 것과 더 비슷합니까? 그러나 linq2entity와 metamodel을 사용합니까?
아래는 list.aspx.cs- 표준 그리드를 EntityDatasource에 바인딩하는 것 같습니다. 그러나 이것은 MVC의 경로에 따라 현재 테이블에 있습니다.
그러나 보시다시피, 나는 다른 필드를 얻으려면 모델을 통해 사람, 역할 및 링크 테이블을 쿼리해야합니다.
ps 가능하면 Linq2entity로 이것을 시도하고 유지하려고합니다 -Grok에.
내가하고 싶은 자연스러운 일은 새로운 SQL 쿼리를 분사하여 값을 검색하는 것입니다. 그러나 이것은이 관용구에 있지 않습니다.
해결책
DataContext를 통해 메타 모델을 참조 할 수 있습니다
MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName));
MetaTable refMetaModel;
refMetaModel = refMetaModel.GetTable("yourTableName");
추신은 코드를 보았고 이것은 Sceanrio에서 작동합니다. 모델에서 테이블을 얻은 다음 모델의 각 테이블에 대해 반환 된 데이터를 검사 할 수 있습니다.
다른 팁
LINQ에서 엔터티 모델로이를 사용하는 uselful-
DataContext를 사용하여 Acutal 데이터를 가장 유용하게 얻을 수 있습니다.
메타 모델은 데이터 모드에 액세스 할 수있어 기본 DDL 유형 정보를 제공합니다.
//use the datacontext to get the underlying data
using (brrdbEntities brr = new brr_dbEntities())
{
ObjectQuery<person> people = brr.person;
IQueryable<string> names = from p in people select p.person_name;
foreach (var name in names)