Model Class: CourseInfo.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using SnapObjects.Data;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace Appeon.ApiDoc.Models.School
{
[SqlParameter("deptId", typeof(int))]
[Table("Course", Schema = "dbo")]
[UpdateWhereStrategy(UpdateWhereStrategy.KeyColumns)]
[SqlWhere("DepartmentId = :deptId")]
[SqlSelect("SelectCourse", RawSelect = "Title")]
public class CourseInfo
{
[Key]
public Int32 CourseID { get; set; }
public String Title { get; set; }
public Int32 Credits { get; set; }
public Int32 DepartmentID { get; set; }
[JsonIgnore]
[SetValue("$CourseID", "$CourseID", SetValueStrategy.Always)]
[ModelEmbedded(typeof(CourseStudentInfo), ParamValue = "$CourseID",
CascadeCreate = true, CascadeDelete = true)]
public IList<CourseStudentInfo> Students { get; set; }
[JsonIgnore]
[SetValue("$CourseID", "$CourseID", SetValueStrategy.Always)]
[ModelEmbedded(typeof(CourseInstructorInfo), ParamValue = "$CourseID",
CascadeCreate = true, CascadeDelete = true)]
public IList<CourseInstructorInfo> Instructors { get; set; }
[JsonIgnore]
[SqlEmbedded(@"SELECT Count(1)
FROM OnlineCourse
WHERE CourseID = @id",
ParamValue = "$CourseID")]
public int OnlineFlag { get; set; }
}
}