이 내가이 일에 대해 갈거야 어떻게 내 현재의 화신 :
나는 디자이너에 테이블을 SQL 클래스에 LINQ를 추가하고 떨어 뜨릴에 의해 생성 된의 DataContext 클래스가 있습니다. 클래스 MyDataContext를 호출하여 Linq라는 네임 스페이스에 넣었습니다. 내 데이터베이스는 Linq 네임 스페이스에서도 클래스를 생성 한 Tag라는 테이블을 가지고 있습니다. 모든 접근자를 내부로 변경 했으므로 데이터 액세스 레이어 외부에 표시되지 않습니다.
namespace Linq
{
[System.Data.Linq.Mapping.DatabaseAttribute(Name="MyDb")]
internal partial class MyDataContext : System.Data.Linq.DataContext
{
...
}
[Table(Name="dbo.vTag")]
internal partial class Tag
{
....
}
}
그런 다음 어셈블리를 참조하는 응용 프로그램에 노출 될 DataAccess라는 클래스를 만들었습니다. 나 또한 내 자신의 태그 클래스를 만들었습니다. DataAccess 클래스와 새로운 Tag 클래스는 Linq 네임 스페이스에있는 생성 된 클래스와의 충돌을 피하기 위해 Data라는 다른 네임 스페이스에 있습니다. Linq를 Linq.Tag 객체의 IList를 쿼리하기 위해 Sql에 사용하고 Linq를 사용하여 Linq.Tag 객체의 Data.Tag 객체 목록을 생성합니다.
더 좋은 방법이 있는지, 적은 코드를 필요로하는지에 대해 의견을 듣고 싶습니다. 또한 중복 클래스 이름 (태그)을 사용하여 너무 만족스럽지 않았으므로 추천 이름 지정에 대한 아이디어를 듣고 싶습니다.
namespace Data
{
public class DataAaccess
{
public IList<Tag> List_Tags()
{
using (Linq.MyDataContext dal = new Linq.MyDataContext())
{
IList<Linq.Tag> lstTags = (from c in dal.Tags select c).ToList();
return (from tag in lstTags
select new Data.Tag()
{
ID = tag.ID,
Name = tag.Name,
Parent_ID = tag.Parent_ID
}).ToList();
}
}
}
}
나는 이것을 알지 못했고 귀하의 의견을 뒷받침하는 출처를 찾기 위해 인터넷 검색을 실시했습니다. 당신의 코멘트를 확인하는 것 같았던 많은 사람들이 있었지만, 조금 더 통찰력을 제공하는이 것을 찾았습니다. LINQ to SQL은 완전히 사라지지 않을 것입니다. 엔티티 프레임 워크와 병합하여 진화를 계속할 것입니다. http://www.infoq.com/news/2008/11/DLINQ-Future – Jeremy