I declared a Dictionary in a class as:
public class AuthorAttributes
{
//public int _Paper_ID { get; set; }
public Dictionary<Int32, Int32> _Paper = new Dictionary<Int32, Int32>();
public int _CoAuthor_ID { get; set; }
public int _Venue_ID { get; set; }
}
whereas Dictionary will store _Paper_ID
and _Paper_Category
both of type Int32
as _Paper
.
While reading data from SQL Server as:
using (SqlDataReader _myReader_1 = _myCommand_1.ExecuteReader())
{
while (_myReader_1.Read())
{
int _authorID = _myReader_1.GetInt32(0);
Author _author = _eAthors.FirstOrDefault(_a => _a._Author_ID == _authorID);
if (_author == null)
{
_author = new Author {
_Author_ID = _authorID,
_Author_Name = _myReader_1.GetString(1),
_Year = _myReader_1.GetInt32(6),
_Attributes = new List<AuthorAttributes>()
};
_eAthors.Add(_author);
}
_author._Attributes.Add(new AuthorAttributes {
_Paper = // How to read into Dictionary "_Paper"
_CoAuthor_ID = _myReader_1.GetInt32(4),
_Venue_ID = _myReader_1.GetInt32(5)
}
);
}
_myReader_1.Close();
}
UPDATE
The Sql query used is as:
_myCommand_1.CommandText = @"SELECT AC.Author_ID, A.Author_Name, AC.Paper_ID,
P.Paper_Category, AC.CoAuthor_ID, AP.Venue_ID, AC.Year
FROM AuthorCoAuthor AC
JOIN AuthorPaper AP ON AP.Author_ID = AC.Author_ID AND
AP.Paper_ID = AC.Paper_ID
JOIN Author A ON A.Author_ID = AC.Author_ID
JOIN Paper P ON P.Paper_ID = AP.Paper_ID
ORDER BY
AC.Author_ID, AC.Year, AC.Paper_ID,
AC.CoAuthor_ID, AP.Venue_ID";
How will I read into Dictionary Key and Value using SqLDataReader