C#EF核心Web Api扩展在实体上为空

时间:2020-09-17 16:45:35

标签: c# visual-studio entity-framework entity-framework-core odata

我在我的Web api项目中使用了net core 3.1框架。我的问题是,我有一个没有数据库上下文的实体(“ FirebaseUser”)。但是,此实体与具有数据库上下文的实体(“ Mitarbeiter”)具有一对一关系。然后,将“ FirebaseUser”实体扩展为“ Mitarbeiter”实体,属性“ Mitarbeiter”为空。 不执行用于选择“ Mitarbeiter”的sql语句。我想是因为我要返回一个没有数据库上下文的实体。有人有想法吗?

FirebaseUser实体声明:

    [NotMapped]
    [FirestoreData]
    public class FirebaseUser : FirestoreObject
    {

        [FirestoreProperty]
        public string sUid { get; set; }

        [FirestoreProperty]
        public string sEmail { get; set; }
        [FirestoreProperty]
        public bool? bAlwaysMustLogin { get; set; }
        [FirestoreProperty(ConverterType = typeof(GuidConverter))]
        public Guid? sMitarbeiterId { get; set; }

        [FirestoreProperty]
        public bool? bDeleted { get; set; }
        public string sPasswort { get; set; }

        [ForeignKey("sMitarbeiterId")]
        public virtual Mitarbeiter Mitarbeiter { get; set; }
    }

FirebaseUser控制器代码

        [EnableQuery]
        public async Task<IActionResult> Get([FromODataUri] string key)
        {

            Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", FirestoreObject.CredentialPath);
            FirestoreDb oDb = FirestoreDb.Create(FirestoreObject.FirestoreDb);
            DocumentSnapshot oBenutzerSnapshot = await oDb.Collection("benutzer_benu").Document(key).GetSnapshotAsync();
            if (!oBenutzerSnapshot.Exists)
            {
                return NotFound();
            }
            FirebaseUser oUser = oBenutzerSnapshot.ConvertTo<FirebaseUser>();
            return Ok(oUser);
        }

结果看起来像这样 (“ / FirebaseUser?$ expand = Mitarbeiter”)

{
  "@odata.context": "http://localhost:52854/$metadata#FirebaseUser(Mitarbeiter())/$entity",
  "sUid": "2BYJSDtifrV14yuw06XDSvrlz363",
  "sEmail": "werner-eder@t-online.de",
  "bAlwaysMustLogin": null,
  "sMitarbeiterId": null,
  "bDeleted": false,
  "sPasswort": null,
  "sId": "7uIDmH8QHRqbONZaoA8o",
  "sAngelegtVonUid": null,
  "dAngelegtAm": null,
  "Mitarbeiter": null
}

0 个答案:

没有答案