我使用Entity Framework 6.0.0.0
,方法是Database First
。 我有三個表Client
,Account
,Doc
。一個Client
有許多Docs
和Accounts
。關係是一對多。 Client
表:爲什麼Entity Framewok方法「.AsEnumerable()」不返回任何內容?
public partial class Client
{
public Client()
{
this.Account = new HashSet<Account>();
this.Doc = new HashSet<Doc>();
}
public int ClientId { get; set; }
public string Name { get; set; }
public virtual ICollection<Account> Account { get; set; }
public virtual ICollection<Doc> Doc { get; set; }
}
AngularJs
代碼片段從WebApi
取數據:
angular.module("app", []).controller("searchController", function ($scope, $http) {
//Used to get and display the data
$http.get('/api/Search/').success(function (data) {
debugger;
$scope.searchs = data;
$scope.loading = false;
})
.error(function() {
debugger;
$scope.error = "An Error has occured while loading posts!";
$scope.loading = false;
});
}
方法Web API
Get
取數據(它沒有返回值沒有客戶。):
[HttpGet]
public IEnumerable<Client> Get()
{
private ClientDBEntities db = new ClientDBEntities();
retutn db.Client.AsEnumerable();// it returns NOTHING. There is no clients
}
然而,$http.get('/api/Search/').success(function (data)
調用,如果我改變這種方法返回IEnumerable<string>
:
[HttpGet]
public IEnumerable<Client> Get()
{
List<string> list = new List<string>(){"1", "2", "3"};
return list;
}
我的問題是爲什麼db.Client.AsEnumerable()
返回什麼?我試圖將此代碼更改爲:
retutn db.Client.ToList();// it returns all necessary data
然而,AngularJS方法調用$http.get('/api/Search/').error(...)
任何幫助將不勝感激。
你得到的錯誤是什麼? –
@AmitKumarGhosh沒有錯誤,只是它的工作原理都可以。我附上了我的觀察窗口,以查看我在每個查詢中得到的結果。謝謝。 – StepUp
在我看來你正試圖返回數據庫對象與延遲加載。當反序列化爲json時,如果有循環引用,這可能會導致內存不足異常。 –