如果参数DbSet <derivedclass>如果参数在方法声明中传递 - DbSet <baseclass>

时间:2015-07-06 18:09:15

标签: c# entity-framework

我有DerivedClass的几个派生类(让我们调用它们BaseClass)。

我需要传递参数DbSet <DerivedClass>来更改实体DbSet:

在图书馆:

protected void ChangeEntity (DbSet <BaseClass> list) {

}
代码中的

DbSet <DerivedClass> list;
ChangeEntity (list); // Compillation error

如何将派生类集合作为参数传递?

1 个答案:

答案 0 :(得分:0)

如果您只需要更改实体对象,请改为使用ChangeEntity方法接受IQueryable类型:

DbSet <DerivedClass> list;
ChangeEntity (list);

然后你可以用代码调用它:

$policydoc = <<<EOT
{"expiration": "2016-01-01T00:00:00Z",
  "conditions": [ 
    {"bucket": "{$bucket}"}, 
    ["starts-with", "\$key", "uploads/"],
    {"acl": "private"},
    {"success_action_redirect": "$success_action_redirect"},
    ["content-length-range", 0, 1048576]
  ]
}
EOT;

$policydoc = base64_encode($policydoc);
$signature = base64_encode(hash_hmac('sha1', $policydoc,  $provider->getSecretKey(), true));