[LINQ] Object reference not set to an instance of an object.
Hello,
J'utilise LINQ pour la premiere fois (je teste un peut ASP.NET), et j'ai un probleme, j'ai 3 tables (Articles, aspnet_Users, Categories) que j'utilise en jointure comme ceci dans une vue:
Code:
1 2 3 4 5 6 7 8 9 10 11
| public ActionResult Index()
{
var dataContext = new BlogDataContext();
var allArticles = from articles in dataContext.Articles
join categories in dataContext.Categories
on articles.CategoryUuid equals categories.Uuid
join authors in dataContext.Authors
on articles.AuthorUuid equals authors.UserId
select articles;
return View(allArticles);
} |
Seulement quand je veux l'utiliser dans la vue comme cela:
Code:
1 2 3 4 5 6 7 8 9
| <% foreach (Article article in (IEnumerable)ViewData.Model) { %>
<div class="article">
<div class="title">[<%= article.Category.Title %>]<%= article.Title %></div>
<div class="body">
<%= article.Body %>
<pre>Posté par <%= article.Author.UserName %></pre>
</div>
</div>
<% } %> |
J'ai cette erreur :
Citation:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 12: <div class="body">
Line 13: <%= article.Body %>
=> Line 14: <pre>Posté par <%= article.Author.UserName %></pre>
Line 15: </div>
Line 16: </div>
Pourtant quand je lance un requête SQL équivalente, tout fonctionne correctement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| SELECT
dbo.Articles.Title AS Title,
dbo.Articles.Body AS Body,
dbo.Articles.CreatedAt AS CreatedAt,
dbo.Articles.ModifiedAt AS ModifiedAt,
dbo.aspnet_Users.UserName AS Author,
dbo.Categories.Title AS Category
FROM
dbo.Articles,
dbo.Categories,
dbo.aspnet_Users
WHERE
dbo.Articles.AuthorUuid = dbo.aspnet_Users.UserId AND
dbo.Articles.CategoryUuid = dbo.Categories.Uuid; |
Retourne :
Citation:
Testing ASP.NET MVC I am testing ASP.NET MVC 2.0 2010-02-28 20:39:50.340 2010-02-28 20:39:50.340 kedare IT
Une idée d'ou peut venir le problème ?
Merci !