ASP.NET MVC 웹 응용 프로그램에 대한 동적 XML 사이트 맵을 만들려고합니다. 이 페이지는 엔티티 프레임 워크 6 모델에 의해 데이터베이스에서 검색된 데이터에 기초하여 구조화되고 예측 가능합니다. 데이터베이스에서 각 항목을 검색하는 데 XML 리터럴을 사용하고 싶습니다. 어떤 일이 발생하는지는 here입니다. System.NotSupportedException이 코드의 결과를 실행XML 리터럴 안의 엔터티에 Linq는 "무형의 생성자 만 엔터티에 Linq에서 지원됩니다"
Dim xmlSitemap = <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com</loc>
</url>
<url>
<loc>https://example.com/Home/Contact</loc>
</url>
<%= From blog in db.Blogs Select <url>
<loc>https://example.com/BlogPosts/<%= blog.PostId %></loc>
</url> %>
</urlset>
:
내 문은 다음과 같습니다. '만 매개 변수가없는 생성자와 초기화가 엔티티에 LINQ에서 지원되는'을
Public Sub New()
을 인수없이 포함하도록 모델을 수정해도이 오류를 해결할 수 없습니다. 시도한 후 내 연구를 기반으로, 나는 이것이 Linq 쿼리 내에서 문자열을 연결한다는 사실과 관련이 있다고 생각하지만, 나는 다른 방법을 모른다. 이 방법으로 사이트 맵을 만드는 방법이 있습니까, 아니면 너무 많이 묻는 것입니까?
.NET 수준에서 ''태그에 의해 생성 된 컴파일 된 표현식은 Entity Framework (즉 SQL 문)에서 처리하기에는 너무 복잡합니다. 'db.Blogs' 다음에'.ToList()'또는'.AsEnumerable()'을 추가하여 나머지 LINQ 문을 LINQ-to-Objects 문맥으로 강제하십시오. –
StriplingWarrior
@StriplingWarrior,'.ToList()'를 추가하면 실제로 작동했습니다. 나는 그걸 생각하지 않았다. 당신은 완전한 대답으로 당신의 코멘트를 할 수 있습니까? –