대부분 정확한 데이터를 반환하는 루틴이 있습니다. 문자열 ID 코드를 전달하고 모델을 만들고 데이터베이스에서 데이터를 가져온 다음 모델을 채운 다음 모델을 다시 전달합니다. 모델의 List에 데이터가 포함되어 있지 않은 경우를 제외하고는 반환 모델이 정확하고 올바른 데이터를 가지고 있습니다.서브 루틴에서 객체 반환
모델은 서브 루틴이 코드
SubjectDB xsubject = new SubjectDB();
xsubject = (SubjectDB)GetNewSubject(model.Subject.Id);
를 사용하여 호출이 하나
public class SubjectDB
{
public string SubjectId { get; set; }
.
.
List<AddressDB> Address { get; set; }
.
.
[Key]
public int Id { get; set; }
}
public class DBEntities: DbContent
{
public DbSet<SubjectDB> SubjectDB { get; set; }
public DbSet<AddressDB> AddressDB { get; set; }
.
.
}
과 유사
서브 루틴은
Public object GetNewSubject(string Id)
{
SubjectDB subjectdb = new SubjectDB();
DBEntites db = new DBEntities();
var subjectxx = db.SubjectDB.First(x => x.SubjectId == Id);
var addressxx = db.AddressDB.First(x => x.SubjectId == Id);
.
.
subjectdb.SubjectId = subjectxx.Subjectid;
.
.
List<AddressDB> Address = new List<AddressDB>();
Address.Add(addressxx);
.
.
return(subjectdb);
}
이다 나는 수있는의 subjectdb 마우스 오버 서브 루틴 및 목록의 데이터를 포함하여 모든 데이터를 볼 수 있지만 반환 된 O 위에 마우스를 bs "xsubject", 나는 올바른 모든 반환 된 데이터를 보지만 목록은 비어 있습니다.
공개'SubjectDB' GetNewSubject (문자열 ID)? 매번 캐스팅하는 대신 올바른 유형을 반환하는 것이 어떻습니까? 'First()'문은 데이터베이스에 존재하지 않는 주제 ID를 찾으려고 할 때 예외를 던질 것입니다. (당신은'FirstOrDefault'를 사용할 수 있고 id가 없을 때 null을 얻습니다.) – Laoujin
메소드에서'object'를 반환하지 말아야합니다.). 또한 C# 메서드는 보통 그냥 메서드라고 부릅니다. "루틴"/ "서브 루틴"은 훨씬 덜 일반적입니다. –
정말 많이 알려주려면 데이터베이스 구조와 나머지 코드에 대한 자세한 정보가 필요하다고 생각합니다. 적절한 유형을 사용하여 다시 시도해 보라고 권하고 싶지만 많이 할 수있는 의구심이 있습니다. – Corylulu