我需要找到FK属性的相关导航属性。
这是我的模特:
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
import { AngularFireDatabase } from 'angularfire2/database';
constructor(
private afs: AngularFirestore,
private angularfire: AngularFireDatabase
) { }convert() {
this.itemsCollection = this.afs.collection('requests'); //ref()
this.angularfire.list('/requests/').auditTrail().subscribe((data: any) => {
_.each(data, element => {
this.itemsCollection.doc(element.key).set(element.payload.val())
.then((result) => {
});
});
});}
现在,我想写这样的东西:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
我首先使用EF 6.2代码。
感谢您的帮助!
答案 0 :(得分:0)
经过大量的研究,我没有找到蚂蚁资源或示例如何做,但我找到了一个临时解决方案,使用以下代码,我不知道这是最佳方式还是有例外。
public static string GetNavigationByForeignKey(this DbContext context, Type entityType, string fkPropertyName)
{
var objectContext = (context as IObjectContextAdapter).ObjectContext;
var entityMetadata = objectContext.MetadataWorkspace
.GetItems<EntityType>(DataSpace.CSpace)
.FirstOrDefault(et => et.Name == entityType.Name);
var navigationProperty = entityMetadata.NavigationProperties
.FirstOrDefault(prop => prop.GetDependentProperties().Any(dep => dep.Name == fkPropertyName));
return navigationProperty.Name;
}
如果有人有更好的解决方案,我将不胜感激。