I think you're on the right track with your main "entity" class having properties for those relationships that are of another strong type.
Assume you have a Product table and a Category table, with the Product table containing a foreign key to the Category table's primary key. In your code, your Product class doesn't get an integer "CategoryID" property - it gets a "Category" property which is a reference to a Category type.
class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public Category Category { get; set;}
}
class Category
{
public int CategoryID { get; set; }
public string Name { get; set; }
}
Going this route lets you code your business logic using standard classes and then your persistence layer (EF, NHibernate, etc) can deal with the database interaction and handling the foreign keys between the tables.