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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 !